簡體   English   中英

上個月的日期時間熊貓

[英]Previous month datetime pandas

我有一個 datetime 實例聲明如下:

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

如何從dtDate獲取上個月和上一年?

例如:

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

您可以使用:

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 

您可以使用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')

操縱整個熊貓系列。

使用pd.DateOffset().dt.to_period("M")

df['year_month'] = df['timestamp'].dt.to_period("M")
df['prev_year_month'] = (df['timestamp'] - pd.DateOffset(months=1)).dt.to_period("M")

在此處輸入圖片說明

如果你想前進一個月,設置months=-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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM