Panda: come utilizzare aggfunc nella funzione crosstab()
Puoi utilizzare l’argomento aggfunc nella funzione pandas crosstab() per creare una tabella incrociata che aggrega valori utilizzando una metrica specifica:
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')
Il valore predefinito di aggfunc è “count”, ma puoi specificare altri metodi di aggregazione come media, mediana, somma, minimo, massimo, ecc.
Puoi anche specificare più metodi di aggregazione nell’argomento aggfunc :
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])
I seguenti esempi mostrano come utilizzare ciascuno di questi metodi nella pratica con i seguenti DataFrame panda:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '], ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 25 2 AF 24 3 BG 39 4 BF 34 5 BF 20 6 BF 18 7 GC 17 8 GC 20 9 CF 19 10 CF 22
Esempio 1: creare una tabella incrociata con un valore in aggfunc
Possiamo utilizzare la seguente funzione crosstab() con l’argomento aggfunc=’mean’ per creare una tabella incrociata che mostri i punti di valore medio per ogni posizione e combinazione di squadra:
#create crosstab that displays mean points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ') position F G team A 24.0 23.5 B 24.0 39.0 C 20.5 18.5
Ecco come interpretare il risultato:
- La media punti dei giocatori della squadra A nella posizione F è 24 .
- La media dei punti dei giocatori della squadra A nella posizione G è 23,5 .
E così via.
Possiamo anche utilizzare un’altra metrica di aggregazione, come il valore massimo:
#create crosstab that displays max points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ') position F G team At 24 25 B 34 39 C 22 20
Ecco come interpretare il risultato:
- Il punteggio massimo per i giocatori della squadra A nella posizione F è 24 .
- Il punteggio massimo per i giocatori della squadra A nella posizione G è 25 .
E così via.
Esempio 2: creare una tabella incrociata con più valori in aggfunc
Possiamo utilizzare la funzione crosstab() con più valori nell’argomento aggfunc per aggregare valori di punti in base a più parametri per ciascuna posizione e combinazione di squadra:
#create crosstab that displays min and max points by team and position p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) min max position F G F G team A 24 22 24 25 B 18 39 34 39 C 19 17 22 20
Ecco come interpretare il risultato:
- Il valore minimo del punto per i giocatori della squadra A nella posizione F è 24 .
- Il valore minimo del punto per i giocatori della squadra A nella posizione G è 22 .
- Il valore massimo in punti per i giocatori della squadra A nella posizione F è 24 .
- Il valore massimo in punti per i giocatori della squadra A nella posizione G è 25 .
E così via.
Nota : puoi trovare la documentazione completa della funzione pandas crosstab() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni dei panda:
Panda: come creare una tabella incrociata con percentuali
Panda: come utilizzare GroupBy e conteggi dei valori
Panda: come utilizzare GroupBy con il conteggio dei contenitori