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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.