[英]Python/Pandas - Best practice how to join 2 arrays with dates in Python/Pandas
我是 Python 的完全新手 - 为了对抵押计划中的利息进行程序计算,我需要使用日期进行计算。 有一个用于付款的日期数组和另一个用于汇总利息的日期数组。
我完全坚持合并两个日期数组 - 我只需要一个带有排序日期的合并数组。 我通读了不同的方法(DataFrames、Joins、Merges),但找不到任何解决方案。
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)
IIUC,你需要Index.union
:
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]
您可以append
一个范围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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.