2016-05-26 11 views
4

У меня есть pandas DateTimeIndex. Я хочу добавить пятнадцать дней к каждой дате.Добавить 15 дней на каждую дату в 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') 

Я хочу:

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

Я сделал:

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

Это нарушает как только t.month + 1 больше 12. Есть ли общепринятый хороший способ сделать дату математика по всей серии?

ответ

4

Я думаю, что вы можете использовать offsets см docs:

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

в качестве альтернативы вы можете использовать Timedelta():

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^