Pandas: como calcular a porcentagem do total dentro de um grupo


Você pode usar a seguinte sintaxe para calcular a porcentagem de um total nos grupos panda:

 df[' values_var '] / df. groupby (' group_var ')[' values_var ']. transform (' sum ')

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

Exemplo: Calcule a porcentagem do total dentro do grupo

Suponha que temos o seguinte DataFrame do pandas que mostra os pontos marcados por jogadores de basquete de diferentes times:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print (df)

  team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22

Podemos usar a seguinte sintaxe para criar uma nova coluna no DataFrame que exibe a porcentagem do total de pontos marcados, agrupados por equipe:

 #calculate percentage of total points scored grouped by team
df[' team_percent '] = df[' points '] / df. groupby (' team ')[' points ']. transform (' sum ')

#view updated DataFrame
print (df)

  team points team_percent
0 A 12 0.121212
1 A 29 0.292929
2 A 34 0.343434
3 A 14 0.141414
4 A 10 0.101010
5 B 11 0.100000
6 B 7 0.063636
7 B 36 0.327273
8 B 34 0.309091
9 B 22 0.200000

A coluna team_percent indica a porcentagem do total de pontos marcados por este jogador em seu time.

Por exemplo, os jogadores do Time A marcaram um total de 99 pontos.

Portanto, o jogador da primeira linha do DataFrame que marcou 12 pontos marcou um total de 12/99 = 12,12% do total de pontos do Time A.

Da mesma forma, o jogador na segunda linha do DataFrame que marcou 29 pontos marcou um total de 29/99 = 29,29% do total de pontos do Time A.

E assim por diante.

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

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Pandas: como calcular a soma acumulada por grupo
Pandas: como contar valores únicos por grupo
Pandas: como calcular o modo por grupo
Pandas: como calcular a correlação por grupo

Add a Comment

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