Pandas: как рассчитать совокупную сумму по группе


Вы можете использовать следующий синтаксис для вычисления совокупной суммы по группам в pandas:

df['cumsum_col'] = df.groupby(['col1'])['col2']. cumsum ()

Эта конкретная формула вычисляет кумулятивную сумму col2 , сгруппированную по col1 , и отображает результаты в новом столбце с названием cumsum_col .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычислить совокупную сумму по группе в Pandas

Предположим, у нас есть следующий pandas DataFrame, который содержит информацию о продажах для различных магазинов:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'store': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
 'sales': [4, 7, 10, 5, 8, 9, 12, 15, 10, 8]})

#view DataFrame
print(df)

 store sales
0 A 4
1 A 7
2 A 10
3 A 5
4 A 8
5 B 9
6 B 12
7 B 15
8 B 10
9 B 8

Мы можем использовать следующий синтаксис для вычисления совокупной суммы продаж для каждого магазина:

#add column that shows cumulative sum of sales by store
df['cumsum_sales'] = df.groupby(['store'])['sales']. cumsum ()

#view updated DataFrame
print(df)

 store sales cumsum_sales
0 A 4 4
1 A 7 11
2 A 10 21
3 A 5 26
4 A 8 34
5 B 9 9
6 B 12 21
7 B 15 36
8 B 10 46
9 B 8 54

В столбце cumsum_sales показаны совокупные продажи, сгруппированные по каждому магазину.

Примечание.Полную документацию по функции cumsum в pandas можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Как суммировать определенные столбцы в Pandas
Как суммировать столбцы на основе условия в Pandas
Как рассчитать обратную кумулятивную сумму в Pandas