首页 > 解决方案 > 生成具有相同月份和日期的年份列表

问题描述

我想生成一个'%Y-%m-%d'不同年份的相同月份和日期的列表。

我试过了

import pandas as pd
pd.date_range('2014-04-01', '2018-04-01', freq='BYS').strftime("%Y-%m-%d").tolist()

它返回['2015-01-01', '2016-01-01', '2017-01-02', '2018-01-01']

预期结果['2014-04-01, '2015-04-01, '2016-04-01', '2017-04-01', '2018-04-01']

标签: pythonpandasdatetime

解决方案


由于您想在年份之间生成日期时间,2014-04-01因此是月份的开始日期。您可以使用 12 个月的频率,并且是月份开始。2018-04-0104-0112MS12MS

pd.date_range('2014-04-01', '2018-04-01', freq='12MS').strftime("%Y-%m-%d").tolist()

['2014-04-01', '2015-04-01', '2016-04-01', '2017-04-01', '2018-04-01']

如果要在2014-04-02和之间生成日期时间,可以在和2018-04-02之间为生成的日期添加偏移量。2014-04-022018-04-02

(pd.date_range('2014-04-01', '2018-04-01', freq='12MS') + pd.DateOffset(days=1)).strftime("%Y-%m-%d").tolist()

['2014-04-02', '2015-04-02', '2016-04-02', '2017-04-02', '2018-04-02']

pd.date_range('2014-04-02', '2018-04-02', freq='12MS')不起作用12MS的原因是在. 2014-04-02_2018-04-022014-05-012017-05-01


推荐阅读