Я пытаюсь найти среднее значение за последние 5 дней по дням и продуктам. Ниже показано, как выглядит мой Dataframe:
df=pd.DataFrame({
'day':['day_1','day_2','day_3','day_4','day_5','day_2','day_3','day_4','day_5','day_6','day_1'],
'product':['prod_a','prod_a','prod_a','prod_a','prod_a','prod_b','prod_b','prod_b','prod_b','prod_b','prod_b'],
'sale':[10,15,4,17,12,1,50,70,30,70,10]
})
Чтобы найти среднее значение за последние 5 дней по продукту, я сделал следующее:
df_average = df.groupby(['day', 'product']).tail(5).groupby(['day', 'product']).mean()
Выполнение вышеуказанного возвращает только фактическое значение для этого дня для этого продукта за этот день и не берет среднее значение за последние 5 дней.
Ожидаемый результат:
day, product, sale, last_5_average
day_1, prod_a , 10, 11.6
day_2, prod_a , 15, 12
day_3, prod_a , 4, 11
day_4, prod_a , 17, 14.5
day_5, prod_a , 12, 12
day_1, prod_b , 1, 44.2
day_2, prod_b , 50, 54
day_3, prod_b , 70, 55
day_4, prod_b , 30, 50
day_5, prod_b , 70, 60
day_6, prod_c , 50, 50