繁体   English   中英

Python/Pandas - 如何在 Python/Pandas 中连接 2 个带日期的数组的最佳实践

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM