Panda: come raggruppare due colonne e aggregarle


Puoi utilizzare la seguente sintassi di base con la funzione groupby() in panda per raggruppare per due colonne e aggregare un’altra colonna:

 df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()

Questo particolare esempio raggruppa DataFrame per colonne var1 e var2 , quindi calcola la media della colonna var3 .

I seguenti esempi mostrano come raggruppare su due colonne e aggregare utilizzando il seguente DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

Esempio 1: raggruppa due colonne e calcola la media di un’altra colonna

Possiamo utilizzare la seguente sintassi per calcolare il valore medio della colonna dei punti , raggruppati per colonna squadra e posizione :

 #calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()

team position
AF23.0
      G 18.5
BF 12.0
      G 25.5
Name: points, dtype: float64

Dal risultato possiamo vedere:

  • Il valore medio dei punti dei giocatori della squadra A nella posizione F è 23 .
  • Il valore medio dei punti dei giocatori della squadra A nella posizione G è 18,5 .

E così via.

Esempio 2: raggruppa due colonne e calcola il massimo di un’altra colonna

Possiamo utilizzare la seguente sintassi per calcolare il valore massimo della colonna dei punti , raggruppati per colonna squadra e posizione :

 #calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()

team position
AF25
      G22
BF 12
      G 35
Name: points, dtype: int64

Dal risultato possiamo vedere:

  • Il valore massimo in punti per i giocatori della squadra A nella posizione F è 25 .
  • Il valore massimo in punti per i giocatori della squadra A nella posizione G è 22 .

E così via.

Esempio 3: raggruppare per due colonne e contare le occorrenze

Possiamo utilizzare la seguente sintassi per contare le occorrenze di ciascuna combinazione delle colonne squadra e posizione :

 #count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

Dal risultato possiamo vedere:

  • Ci sono 3 giocatori della squadra A nella posizione F.
  • Ci sono 2 giocatori della squadra A nella posizione G.

E così via.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Come contare valori univoci utilizzando Pandas GroupBy
Come applicare una funzione a Pandas Groupby
Come creare un grafico a barre da Pandas GroupBy

Aggiungi un commento

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