2017-10-14 2 views
1

J'essaie de comprendre comment ajouter 3 mois à une date dans une image Pandas, tout en le gardant dans le format de la date afin que je puisse l'utiliser pour rechercher une plage.Ajouter des mois à une date dans Pandas

C'est 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, je reçois l'erreur suivante:

AttributeError: 'int' object has no attribute 'astype' 

Toutes les idées sur la façon de le faire? Merci!

Répondre

3

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 en utilisant 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