Как рассчитать timedelta в столбце фрейм данных

#pandas #timedelta

Вопрос:

Я хочу добавить новый столбец в фрейм данных, который показывает новую дату в столбце, которая является датой в столбце b, добавьте месяцы в столбец.

 a b
3 2021-08-01
2 2021-07-01
5 2021-01-01
 
 a b c
3 2021-08-01 2021-11-01
2 2021-07-01 2021-09-01
5 2021-01-01 2021-06-01
 

Я попытался

 pd.to_datetime(df['b']   timedelta(df ['a'])
 

Но это не работает.

Ответ №1:

Давайте сделаем

 df['new'] = df.apply(lambda x: x['b']   pd.offsets.MonthBegin(x['a']), axis=1)
Out[194]: 
0   2021-11-01
1   2021-09-01
2   2021-06-01
dtype: datetime64[ns]
 

Ответ №2:

Попробуйте это вместо этого

 from dateutil.relativedelta import relativedelta

df['c'] = df.apply(lambda r: r['b']   relativedelta(months=r['a']), axis=1)