我在 pandas 中有一个 DatetimeIndex,我想使用系列中的最后一个日期将其转换为滚动 DatetimeIndex。
因此,如果我创建一个示例日期时间索引:
dates=pd.DatetimeIndex(pd.date_range(dt(2017,10,1),dt(2018,02,02)))
一个例子
输入:包含上述范围内所有日期的 DatetimeIndex:
dates
2017-10-01
2017-10-02
.
.
2018-02-01
2018-02-02
期望的输出:只有每月 2 号的 DatetimeIndex(因为那是输入中的最后一个日期):
dates
2017-10-02
2017-11-02
2017-12-02
2018-01-02
2018-02-02
尝试
我试过了
dates[::-1][::30]
并且
dates[dates.apply(lambda x: x.date().day==2)]
不幸的是,月份可能相差 30 天或 31 天,因此第一种方法不起作用,而第二种方法在 1-30 天的范围内有效,而对于第 31 天,它每隔一个月跳过一次。因此,例如,如果我有:
dates
2017-10-01
2017-10-02
.
.
2018-01-31
我想要:
dates
2017-10-31
2017-11-30
2017-12-31
2018-01-31
而第二种方法跳过 11 月,因为它没有 30 日。
有没有办法使用 RelativeDelta 来做到这一点?