Panda: come usare groupby() con size()
Puoi utilizzare i seguenti metodi con le funzioni groupby() e size() in panda per contare il numero di occorrenze per gruppo:
Metodo 1: contare le occorrenze raggruppate per una variabile
df. groupby (' var1 '). size ()
Metodo 2: contare le occorrenze raggruppate in base a più variabili
df. groupby ([' var1 ', ' var2 ']). size ()
Metodo 3: contare le occorrenze raggruppate per più variabili e ordinate per numero
df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )
I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con i seguenti 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: contare le occorrenze raggruppate per una variabile
Il codice seguente mostra come utilizzare le funzioni groupby() e size() per contare le occorrenze di valori nella colonna team :
#count occurrences of each value in team column
df. groupby (' team '). size ()
team
AT 5
B5
dtype: int64
Dal risultato possiamo vedere che i valori A e B compaiono entrambi 5 volte nella colonna della squadra .
Esempio 2: contare le occorrenze raggruppate per più variabili
Il codice seguente mostra come utilizzare le funzioni groupby() e size() per contare le occorrenze di valori per ciascuna combinazione di valori nelle colonne team e posizione :
#count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
Dal risultato possiamo vedere:
- La squadra A e la posizione F appaiono 3 volte.
- La squadra A e la posizione G appaiono due volte .
E così via.
Esempio 3: contare le occorrenze raggruppate per più variabili e ordinarle
Il codice seguente mostra come utilizzare le funzioni groupby() e size() per contare le occorrenze di valori per ciascuna combinazione di valori nelle colonne team e posizione , quindi ordinare in base al conteggio:
#count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )
team position
BG 4
AF3
G2
BF 1
dtype: int64
L’output mostra il conteggio di ciascuna combinazione di valori di squadra e posizione , ordinati per conteggio in ordine decrescente.
Nota : per ordinare in base al numero in ordine crescente, è sufficiente rimuovere ascending=False nella funzione sort_values() .
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