2017-03-29 79 views
3

我有一个DateTime实例声明如下:上月的datetime熊猫

dtDate = datetime.datetime(2016,1,1,0,0) 

如何获得比上月和上年末从dtDate

例如是这样的:

dtDate.minusOneMonth() 
# to return datetime.datetime(2015,12,1,0,0) 

回答

1

您可以使用:

dtDate = datetime.datetime(2016,1,1,0,0) 

print (dtDate - pd.DateOffset(months=1)) 
2015-12-01 00:00:00 

print (dtDate - pd.DateOffset(years=1)) 
2015-01-01 00:00:00 

添加s是很重要的,因为如果使用year只:

print (dtDate - pd.DateOffset(year=1)) 
0001-01-01 00:00:00 
2

您可以使用DateOffset

In [32]:  
dtDate = dt.datetime(2016,1,1,0,0) 
dtDate - pd.DateOffset(months=1) 

Out[32]: 
Timestamp('2015-12-01 00:00:00') 
1

使用relativedeltadateutil

import datetime 
import dateutil.relativedelta 
dtDate = datetime.datetime(2016,1,1,0,0) 
# get previous month 
print ((dtDate+dateutil.relativedelta.relativedelta(months=-1)).month) 
# get previous year 
print ((dtDate+dateutil.relativedelta.relativedelta(years=-1)).year) 

输出:

12 
2015