У меня есть следующий код
data = {'date': ['2014-05-05', '2014-05-01', '2014-05-02',
'2014-05-02', '2014-05-02', '2014-05-02',
'2014-05-03', '2014-05-03', '2014-05-04',
'2014-05-04'],
'battle_deaths': [34, 25, 26, 15, 15, 14, 26, 25, 62, 41],
'group': [1, 2, 3, 2, 2, 3, 2, 1, 3, 1]}
df = pd.DataFrame(data, columns=['date', 'battle_deaths', 'group' ''])
df = df.set_index('date')
df.groupby('group').rolling(2).sum()
Какие выходы
battle_deaths group
group date
1 2014-05-05 NaN NaN
2014-05-03 59.0 2.0
2014-05-04 66.0 2.0
2 2014-05-01 NaN NaN
2014-05-02 40.0 4.0
2014-05-02 30.0 4.0
2014-05-03 41.0 4.0
3 2014-05-02 NaN NaN
2014-05-02 40.0 6.0
2014-05-04 76.0 6.0
Но поскольку индекс является датой, я бы ожидал, что для первой группы столбец battle_deaths
будет иметь значение NaN
для даты 2014-05-03
. Другими словами, я хотел бы сделать промежуточную сумму в каждой группе, отсортированной по date
. Как мне этого добиться?