У меня есть датафрейм, который выглядит так:
stuff datetime value
A 1/1/2019 3
A 1/2/2019 4
A 1/3/2019 5
A 1/4/2019 6
...
Я хочу создать новый фрейм данных, который выглядит следующим образом:
stuff avg_3 avg_4 avg_5
A 3.4 4.5 5.5
B 2.3 4.2 6.1
где avg_3 - среднее значение за последние 3 дня с сегодняшнего дня, avg_4 - среднее значение за последние 4 дня с сегодняшнего дня и т. Д., Сгруппированное по материалу
Как мне это сделать?
Мой текущий код:
df.groupby('stuff').apply(lambda x: pd.Series(dict(
day_3=(x.datetime > datetime.now() - timedelta(days = 3)).mean(),
day_7=(x.datetime > datetime.now() -timedelta(days = 7)).mean())))
Заранее спасибо