我如何使用numpy.timedelta来添加(或减去)1个月?

问题描述 投票:0回答:1

我正在尝试将日期减为1个月。我的意思是在1个月前获得相同的日期。

import pandas as pd 
import numpy as np 

pd.to_datetime(201905, format='%Y%m') - np.timedelta64(1, 'M')

我希望像上个月的第一天一样

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

但是输出是

Timestamp('2019-03-31 13:30:54')

当我尝试增加一个月时,问题似乎是相同的。

代码

pd.to_datetime(201905, format='%Y%m') + np.timedelta64(1, 'M')

返回

Timestamp('2019-05-31 10:29:06')

而不是

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

我该如何解决这个问题?

我的最终目标是采用YYYYmm整数格式(例如201905),然后加上(或减去)任意数量的月数,并以相同的格式(整数YYYYmm)返回新日期。也许可以使用其他软件包轻松完成?

python pandas numpy timedelta
1个回答
0
投票

一个月的时间增量是一年的长度除以12,所以它是'average'个月单位:

a = pd.to_datetime(201905, format='%Y%m') - np.timedelta64(1, 'M')
print (a)
2019-03-31 13:30:54

如果要减去1个月,请使用offsets.DateOffset

offsets.DateOffset
© www.soinside.com 2019 - 2024. All rights reserved.