Я пытаюсь суммировать рабочие часы для группы людей и мне нужно вычислить скользящее среднее.
Я могу сделать это с помощью df.groupby и df.rolling, но для скользящего среднего значения 'n' я ожидаю, что первые значения n-1 в группе будут nan или 0.
Пример -
import pandas as pd
import numpy as np
employees = ['Alice', 'Alice', 'Bob', 'Bob', 'Bob' ]
weeks = [2, 3, 2, 3, 4]
hours = [5, 8, 4, 2, 5]
df = pd.DataFrame.from_dict({'employee' : employees,
'week': weeks,
'hours': hours})
df.groupby(['employee', 'week']).sum().rolling(2).mean()
df
employee hours week
0 Alice 5 2
1 Alice 8 3
2 Bob 4 2
3 Bob 2 3
4 Bob 5 4
Результат -
hours
employee week
Alice 2 NaN
3 6.5
Bob 2 6.0 <-- expect this to be 0
3 3.0
4 3.5
Ожидаемый результат
hours
employee week
Alice 2 NaN
3 6.5
Bob 2 NaN <--- mean reset to 0 on new group
3 3.0
4 3.5
Этот сброс (1-й ряд Боба) не происходит. Как я могу это сделать?
Большое спасибо (и apols за форматирование)