2017-03-29 77 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