J'essaie de comprendre comment ajouter 3 mois à une date dans une trame de données Pandas, tout en la conservant au format de date afin que je puisse l'utiliser pour rechercher une plage.
Voici ce que j'ai essayé:
#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]")
Cependant, j'obtiens l'erreur suivante:
AttributeError: 'int' object has no attribute 'astype'
Auriez vous des idées pour faire ça? Merci!
Vous pouvez utiliser 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]
Une autre façon d'utiliser 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]
Détails
In [1757]: df
Out[1757]:
date
0 2016-10-11
1 2016-11-01
In [1758]: plus_month_period
Out[1758]: 3