在pandas DatetimeIndex中为每个日期添加15天

时间:2016-05-26 14:33:48

标签: python pandas python-datetime

我有一个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,就会中断。是否有一种普遍接受的好方法可以在整个系列中进行日期数学运算?

2 个答案:

答案 0 :(得分:5)

我认为您可以使用offsets,请参阅docs

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

答案 1 :(得分: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)