python 的relativedelta 的意外行为

sap*_*ico 1 python datetime timestamp pandas relativedelta

使用 Python 的时间戳时,我得到了一个令人困惑的结果

我的时间戳

Timestamp('2015-06-01 00:00:00')

my_timestamp + 相对增量(月 = +4)

Timestamp('2015-04-01 00:00:00')

当然,我期望输出为Timestamp('2015-10-01 00:00:00')

在日期中添加“月”的正确方法是什么?


[编辑]:我已经通过使用以下方法解决了这个问题(以防 Pandas 中的任何人遇到同样的问题):

打印 my_timestamp
打印 my_timestamp + DateOffset(月=4)

2015-06-01 00:00:00
2015-10-01 00:00:00

roo*_*oot 5

问题是您使用了错误的关键字参数。你想要months而不是month.

根据文档month表示绝对信息(而不是相对信息)并简单地替换给定的信息,正如您所注意到的。使用months表示相关信息,并按照您的预期执行计算:

Timestamp('2015-06-01 00:00:00') + relativedelta(months=4)

2015-10-01 00:00:00
Run Code Online (Sandbox Code Playgroud)