У меня есть фрейм данных, который выглядит так:
df
ID RY Month INCIDENT_NO
AB10 2019 7 3
AB10 2019 12 3
AB1286 2011 5 2
AB1286 2012 1 2
AB1286 2014 4 1
Я пытаюсь создать скользящую сумму INCIDENT_NO за 12 месяцев на основе идентификатора. Я пишу следующий код:
df.groupby('ID').rolling(12,on='RY').INCIDENT_NO.sum()
Он дает следующий результат:
ID RY
AB10 2019 NaN
2019 NaN
AB1286 2011 NaN
2012 NaN
2014 NaN
...
WS7 2020 30.0
WS8 2016 NaN
WS9 2014 NaN
2018 NaN
2019 NaN
Однако он не дал желаемого результата. Например, в ID AB10 2019 RY появляется дважды, он должен появиться один раз. Может ли кто-нибудь указать мне, где я сделал ошибку? Более того, я хочу показать скользящую сумму за каждый год (даже если данных нет). Например, идентификатор ws9 не содержит данных за 2020 год, он должен показывать нулевую сумму.
Любая помощь будет очень признательна.