来自python的relativedelta的意外行为

时间:2016-07-25 16:17:30

标签: python datetime pandas timestamp relativedelta

使用Python的时间戳和

时,我得到了一个令人困惑的结果
  

my_timestamp

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

  

my_timestamp + relativedelta(month = +4)

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

当然我希望输出到Timestamp('2015-10-01 00:00:00')

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

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

  

打印my_timestamp
  print my_timestamp + DateOffset(months = 4)

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

1 个答案:

答案 0 :(得分:3)

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

Per the documentationmonth表示绝对信息(不是相对的),只是替换给定的信息,正如您所注意到的那样。使用months表示相关信息,并按照您的预期执行计算:

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

2015-10-01 00:00:00