Pandas: como calcular a soma acumulada por grupo


Você pode usar a seguinte sintaxe para calcular uma soma cumulativa por grupo em pandas:

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

Esta fórmula específica calcula a soma cumulativa de col2 , agrupada por col1 e exibe os resultados em uma nova coluna intitulada cumsum_col .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: calcule a soma acumulada por grupo no Pandas

Digamos que temos o seguinte DataFrame do pandas que contém informações de vendas de várias lojas:

 import pandas as pd

#createDataFrame
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)

  blind sales
0 to 4
1 to 7
2 to 10
3 to 5
4 to 8
5 B 9
6 B 12
7 B 15
8 B 10
9 B 8

Podemos usar a seguinte sintaxe para calcular a soma acumulada das vendas de cada loja:

 #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 to 4 4
1 to 7 11
2 to 10 21
3 to 5 26
4 to 8 34
5 B 9 9
6 B 12 21
7 B 15 36
8 B 10 46
9 B 8 54

A coluna cumsum_sales exibe as vendas acumuladas, agrupadas por cada loja.

Nota : Você pode encontrar a documentação completa da função cumsum no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como somar colunas específicas no Pandas
Como somar colunas com base em uma condição no Pandas
Como calcular uma soma cumulativa reversa em pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *