#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)