使用Pandas.date_range与月频率的问题

时间:2016-12-07 19:41:31

标签: python pandas

使用Panda的date_range创建一系列月度日期时遇到问题。 当我使用时:

import pandas as pd
offset = pd.DateOffset(months=3)
pd.bdate_range(dt.datetime(2018, 11, 30), periods=4, freq=offset, name='projected_date')

我得到以下日期:

['2018-11-30', '2019-02-28', '2019-05-28', '2019-08-28']

但是,我希望得到以下日期:

['2018-11-30', '2019-02-28', '2019-05-30', '2019-08-30']

似乎2月份的日期搞砸了所有后续日期。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您的问题似乎就像某些月份时间序列可能需要一个月的某一天。为什么你需要一个月的某一天有什么理由或逻辑吗? 例如,我需要一个月的最后一天,除非是假期或周末,在这种情况下我需要前一天。

您应该使用pandas datetime module中的内置日期时间,而不是手动指定偏移量。在这种情况下,CustomBusinessDays可用于定义某种类型的自定义业务月份,然后编写一段代码,以便

 customcalendar = ['2012-05-01', datetime(2013, 5, 1), np.datetime64('2014-05-01')]
 newCal= CustomBusinessDay(holidays=customcalendar)
 pd.bdate_range(pd.datetime(2018, 11, 30), periods=4, freq=customcalendar,...)