Сумма катания Pandas внутри группыPython

Программы на Python
Anonymous
Сумма катания Pandas внутри группы

Сообщение Anonymous »

Я пытаюсь вычислить скользящую сумму или любую другую статистику (например, среднее значение) внутри каждой группы. Ниже я привожу пример, где окно равно 2, а статистика представляет собой сумму.
df = pd.DataFrame.from_dict({'class': ['a', 'b', 'b', 'c', 'c', 'c', 'b', 'a', 'b'],
'val': [1, 2, 3, 4, 5, 6, 7, 8, 9]})
df['sum2_per_class'] = [1, 2, 5, 4, 9, 11, 10, 9, 16] # I want to compute this column
# df['sum2_per_class'] = df[['class', 'val']].groupby('class').rolling(2).sum() # what I tried

class val sum2_per_class
0 a 1 1
1 b 2 2
2 b 3 5
3 c 4 4
4 c 5 9
5 c 6 11
6 b 7 10
7 a 8 9
8 b 9 16

Вот что я пробовал и соответствующая ошибка:
df['sum2_per_class'] = df[['class', 'val']].groupby('class').rolling(2).sum()

TypeError: incompatible index of inserted column with frame index


Подробнее здесь: https://stackoverflow.com/questions/784 ... in-a-group

Вернуться в «Python»