Python/Pandas最佳实践如何在Python/Pandas中使用日期连接2个数组

2024-06-14 20:49:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的一个完全的新手——在抵押贷款计划中进行利息的程序计算,我需要计算日期。有一个用于付款的日期数组和另一个用于汇总利息的日期数组

我完全无法合并两个日期数组-我只需要一个合并的数组和排序的日期。我阅读了不同的方法(数据帧、连接、合并),但找不到任何解决方案

import pandas as pd
date_range_1 = pd.date_range(start='1/1/2019', periods=12,freq='M')
date_range_2 = pd.date_range(start='31/3/2019',periods=4,freq='3M')

Question-1: How to join these 2 arrays
Question-2: How to sort by date

Output should be:
'1/1/2019'
'1/2/2019'
'1/3/2019'
'31/3/2019'
'1/4/2019'
'1/5/2019'
'1/6/2019'
'30/6/2019'
...

编辑:完整输入+解决方案:

import pandas as pd dates_1= pd.date_range('2018-01-01','2020-01-01' , freq='1M')-pd.offsets.MonthBegin(1) dates_2= pd.date_range('2018-03-31','2020-03-31' , freq='3M')-pd.offsets.MonthEnd(0) Union_dates = pd.Series(sorted(dates_1.union(dates_2))) print(Union_dates)

Tags: importpandasdateasrange数组解决方案start
2条回答

您可以append从一个范围切换到另一个范围,然后sort_values

import pandas as pd

date_range_1 = pd.date_range(start='1/1/2019', periods=12, freq='MS')
date_range_2 = pd.date_range(start='31/3/2019', periods=4, freq='3M')

date_range_1.append(date_range_2).sort_values()

DatetimeIndex(['2019-01-01', '2019-02-01', '2019-03-01', '2019-03-31',
               '2019-04-01', '2019-05-01', '2019-06-01', '2019-06-30',
               '2019-07-01', '2019-08-01', '2019-09-01', '2019-09-30',
               '2019-10-01', '2019-11-01', '2019-12-01', '2019-12-31'],
              dtype='datetime64[ns]', freq=None)

IIUC,你需要^{}

pd.Series(sorted(date_range_1.union(date_range_2)))

0    2019-01-31
1    2019-02-28
2    2019-03-31
3    2019-04-30
4    2019-05-31
5    2019-06-30
6    2019-07-31
7    2019-08-31
8    2019-09-30
9    2019-10-31
10   2019-11-30
11   2019-12-31
dtype: datetime64[ns]

相关问题 更多 >