首页 > 解决方案 > 来自参考日期的历史日期的日期列表

问题描述

我正在尝试从参考日期创建一个工作日日期列表。例如,如果我的参考日期是 2020-02-14,并且我想要一个最近 10 个工作日的列表,我想返回:

2020-02-14
2020-02-13
2020-02-12
2020-02-11
2020-02-10
2020-02-07
2020-02-06
2020-02-05
2020-02-04
2020-02-03

我努力了:

dateList = pd.bdate_range(end='2020-02-14',periods=10)

没有成功(我不会在我的实际代码中硬编码,这只是举例)。

标签: pythonpandas

解决方案


在工作日使用pd.bdate_range频率B并将end参数设置为向后计算。

dates = pd.bdate_range(end='2020-02-14', periods=10, freq='B')
print(dates)

DatetimeIndex(['2020-02-03', '2020-02-04', '2020-02-05', '2020-02-06',
               '2020-02-07', '2020-02-10', '2020-02-11', '2020-02-12',
               '2020-02-13', '2020-02-14'],
              dtype='datetime64[ns]', freq='B')
pd.Series(dates[::-1])

0   2020-02-14
1   2020-02-13
2   2020-02-12
3   2020-02-11
4   2020-02-10
5   2020-02-07
6   2020-02-06
7   2020-02-05
8   2020-02-04
9   2020-02-03
dtype: datetime64[ns]

推荐阅读