【发布时间】:2018-08-17 17:31:57
【问题描述】:
我想得到一个日期范围,其中每个月的日期都与开始日期相同,例如,如果开始日期是 2018-05-16,我想得到 ['2018-09-15, 2018 -10-15,...]
我在 Python3 中有以下代码:
(pd.date_range(start=date, periods=12, freq='M') \
+ pd.DateOffset(days=datetime.strptime(date, '%Y-%m-%d').day)).strftime('%d-%m-%Y')
当月份的日期小于 29 时,它可以正常工作,例如 date = '2018-08-31' 输出:
array(['01-10-2018', '31-10-2018', '01-12-2018',
'31-12-2018', '31-01-2019', '03-03-2019',
'31-03-2019', '01-05-2019', '31-05-2019',
'01-07-2019', '31-07-2019', '31-08-2019'], dtype='|S10')
但是,我希望输出是:
array(['30-09-2018', '31-10-2018', '30-11-2018',
'31-12-2018', '31-01-2019', '28-02-2019',
'31-03-2019', '30-04-2019', '31-05-2019',
'30-06-2019', '31-07-2019', '31-08-2019'], dtype='|S10')
【问题讨论】:
-
所以你想从当前月份的下一个月开始获取该月的最后一天?
-
Sa'haido,我想得到每个月的起始日期的同月天,除非对应的月份没有这样的天。例如。如果起始月份的日期是 30,我希望每个月的第 30 天,除了在 2 月,我想要闰年的 28 或 29。
-
@McNulty,请编辑您的问题以反映您刚才在评论中所说的内容,这不清楚!
-
@McNulty,也请在下面查看我的更新答案!我希望这能满足您的需求!
标签: pandas