2016-05-26 9 views
4

Ich habe einen Pandas DateTimeIndex. Ich möchte jedem Tag fünfzehn Tage hinzufügen.fügen Sie 15 Tage zu jedem Datum in einem Pandas DatetimeIndex

import pandas as pd  

tidx = pd.date_range(end='2016-04-30', freq='M', periods=2) 

tidx 

DatetimeIndex(['2016-03-31', '2016-04-30'], dtype='datetime64[ns]', freq='M') 

Ich möchte:

DatetimeIndex(['2016-04-15', '2016-05-15'], dtype='datetime64[ns]', freq=None) 

ich getan habe:

pd.to_datetime([pd.datetime(t.year, t.month + 1, 15) for t in tidx]) 

Dies bricht, sobald t.month + 1 größer ist als 12. Gibt es eine allgemein akzeptierte gute Möglichkeit, Datum zu tun Mathe über eine ganze Serie?

Antwort

4

Ich glaube, Sie offsets verwenden können, finden docs:

print (tidx + pd.offsets.Day(15)) 
DatetimeIndex(['2016-04-15', '2016-05-15'], dtype='datetime64[ns]', freq=None) 
2

alternativ können Sie Timedelta() verwenden:

In [49]: tidx + pd.Timedelta('15d') 
Out[49]: DatetimeIndex(['2016-04-15', '2016-05-15'], dtype='datetime64[ns]', freq=None) 

In [50]: tidx + pd.Timedelta(days=15) 
Out[50]: DatetimeIndex(['2016-04-15', '2016-05-15'], dtype='datetime64[ns]', freq=None) 
Verwandte Themen