Come contare gli avvistamenti di gruppo nei panda
Spesso potresti essere interessato a contare il numero di osservazioni per gruppo in un DataFrame panda.
Fortunatamente, questo è facile da fare utilizzando le funzioni groupby() e size() con la seguente sintassi:
df. groupby (' column_name '). size ()
Questo tutorial spiega diversi esempi di utilizzo pratico di questa funzione utilizzando il seguente frame di dati:
import numpy as np import pandas as pd #create pandas DataFrame df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'], 'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'], 'rebounds': [11, 8, 7, 6, 6, 5, 12]}) #display DataFrame print (df) team division rebounds 0 AE 11 1 AW 8 2 BE 7 3 BE 6 4 BW 6 5 CW 5 6 CE 12
Esempio 1: contare con una variabile
Il seguente codice mostra come contare il numero totale di osservazioni per squadra:
#count total observations by variable 'team' df. groupby (' team '). size () team At 2 B 3 C 2 dtype: int64
Dal risultato possiamo vedere che:
- La squadra A ha 2 osservazioni
- La squadra B ha 3 osservazioni
- La squadra C ha 2 osservazioni
Si noti che il codice precedente produce una serie. Nella maggior parte dei casi vogliamo lavorare con un DataFrame, quindi possiamo utilizzare la funzione reset_index() per produrre invece un DataFrame:
df. groupby (' team '). size (). reset_index (name=' obs ') team obs 0 to 2 1 B 3 2 C 2
Esempio 2: contare e ordinare in base a una variabile
Possiamo anche usare la funzione sort_values() per ordinare il numero di gruppi.
Possiamo specificare ascending=False per ordinare il numero di gruppi dal più grande al più piccolo o ascending=True per ordinare dal più piccolo al più grande:
df. groupby (' team '). size (). reset_index (name=' obs '). sort_values ([' obs '], ascending= True ) team obs 0 to 2 2 C 2 1 B 3
Esempio 3: conteggio con più variabili
Possiamo anche contare il numero di osservazioni raggruppate da più variabili in un DataFrame panda:
#count observations grouped by team and division df. groupby ([' team ',' division ']). size (). reset_index (name=' obs ') team division obs 0 A E 1 1 A W 1 2 B E 2 3 B W 1 4 C E 1 5 C W 1
Dal risultato possiamo vedere che:
- 1 osservazione appartiene alla squadra A e alla divisione E
- 1 osservazione appartiene alla squadra A e alla divisione W
- 2 osservazioni appartengono alla squadra B e alla divisione E
- 1 osservazione appartiene alla squadra B e alla divisione W
- 1 osservazione appartiene alla squadra C e alla divisione E
- 1 osservazione appartiene alla squadra C e alla divisione W
Risorse addizionali
Come calcolare la somma delle colonne in Pandas
Come calcolare la media delle colonne in Pandas
Come trovare il valore massimo delle colonne in Pandas