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

Aggiungi un commento

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