我试图弄清楚如何在Pandas数据框中的日期中添加3个月,同时将其保持为日期格式,因此可以使用它来查找范围。
这是我尝试过的:
#create dataframe df = pd.DataFrame([pd.Timestamp('20161011'), pd.Timestamp('20161101') ], columns=['date']) #create a future month period plus_month_period = 3 #calculate date + future period df['future_date'] = plus_month_period.astype("timedelta64[M]")
但是,出现以下错误:
AttributeError: 'int' object has no attribute 'astype'
你可以用 pd.DateOffset
pd.DateOffset
In [1756]: df.date + pd.DateOffset(months=plus_month_period) Out[1756]: 0 2017-01-11 1 2017-02-01 Name: date, dtype: datetime64[ns]
另一种使用方式 pd.offsets.MonthOffset
pd.offsets.MonthOffset
In [1785]: df.date + pd.offsets.MonthOffset(plus_month_period) Out[1785]: 0 2016-10-14 1 2016-11-04 Name: date, dtype: datetime64[ns]
细节
In [1757]: df Out[1757]: date 0 2016-10-11 1 2016-11-01 In [1758]: plus_month_period Out[1758]: 3