来自 python 的 relativedelta 的意外行为
Unexpected behavior from python's 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')
向日期添加 "months" 的正确方法是什么?
[编辑]:我已经通过使用以下方法解决了这个问题(以防 Pandas 中的任何人遇到同样的问题):
print my_timestamp
print my_timestamp + DateOffset(months=4)
2015-06-01 00:00:00
2015-10-01 00:00:00
问题是您使用了错误的关键字参数。你想要 months
而不是 month
。
Per the documentation,month
表示绝对信息(不是相对的)并且只是替换给定的信息,正如您所注意到的。使用 months
表示相关信息,并按照您的预期执行计算:
Timestamp('2015-06-01 00:00:00') + relativedelta(months=4)
2015-10-01 00:00:00
我在使用 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')
向日期添加 "months" 的正确方法是什么?
[编辑]:我已经通过使用以下方法解决了这个问题(以防 Pandas 中的任何人遇到同样的问题):
print my_timestamp
print my_timestamp + DateOffset(months=4)
2015-06-01 00:00:00
2015-10-01 00:00:00
问题是您使用了错误的关键字参数。你想要 months
而不是 month
。
Per the documentation,month
表示绝对信息(不是相对的)并且只是替换给定的信息,正如您所注意到的。使用 months
表示相关信息,并按照您的预期执行计算:
Timestamp('2015-06-01 00:00:00') + relativedelta(months=4)
2015-10-01 00:00:00