Panda: come calcolare la percentuale sul totale all'interno di un gruppo


È possibile utilizzare la seguente sintassi per calcolare la percentuale di un totale all’interno dei gruppi di panda:

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

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: calcolare la percentuale del totale all’interno del gruppo

Supponiamo di avere il seguente DataFrame panda che mostra i punti segnati da giocatori di basket di diverse squadre:

 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

Possiamo utilizzare la seguente sintassi per creare una nuova colonna nel DataFrame che visualizza la percentuale dei punti totali segnati, raggruppati per squadra:

 #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

La colonna team_percent indica la percentuale dei punti totali segnati da questo giocatore nella sua squadra.

Ad esempio, i giocatori della squadra A hanno segnato un totale di 99 punti.

Quindi il giocatore nella prima riga del DataFrame che ha segnato 12 punti ha segnato un totale di 12/99 = 12,12% dei punti totali della squadra A.

Allo stesso modo, il giocatore nella seconda fila del DataFrame che ha segnato 29 punti ha segnato un totale di 29/99 = 29,29% dei punti totali della Squadra A.

E così via.

Nota : qui è possibile trovare la documentazione completa per la funzione GroupBy .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Panda: come calcolare il cumulato per gruppo
Panda: come contare i valori unici per gruppo
Panda: come calcolare la modalità per gruppo
Panda: come calcolare la correlazione per gruppo

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *