Panda: come contare i valori in una colonna con condizione


È possibile utilizzare i seguenti metodi per contare il numero di valori in una colonna Pandas DataFrame con una condizione specifica:

Metodo 1: conta i valori in una colonna con condizione

 len(df[df[' col1 ']==' value1 '])

Metodo 2: conta i valori in più colonne con condizioni

 len(df[(df[' col1 ']==' value1 ') & (df[' col2 ']==' value2 ')])

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', 'B', 'B', 'B', 'B'],
                   ' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28

Esempio 1: conta i valori in una colonna con condizione

Il codice seguente mostra come contare il numero di valori nella colonna della squadra in cui il valore è uguale ad “A”:

 #count number of values in team column where value is equal to 'A'
len(df[df[' team ']==' A '])

4

Possiamo vedere che ci sono 4 valori nella colonna squadra dove il valore è uguale ad “A”.

Esempio 2: contare i valori in più colonne con condizioni

Il codice seguente mostra come contare il numero di righe nel DataFrame in cui la colonna team è uguale a “B” e la colonna pos è uguale a “Gu”:

 #count rows where team is 'B' and pos is 'Gu'
len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ')])

2

Possiamo vedere che ci sono 2 righe nel DataFrame che soddisfano entrambe queste condizioni.

Possiamo usare una sintassi simile per contare il numero di righe che soddisfano il numero desiderato di condizioni.

Ad esempio, il codice seguente mostra come contare il numero di righe che soddisfano tre condizioni:

  • la squadra è uguale a ‘B’
  • pos è uguale a ‘Gu’
  • i punti sono maggiori di 12
 #count rows where team is 'B' and pos is 'Gu' and points > 15
len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ') & (df[' points ']> 12 )])

1

Possiamo vedere che una singola riga del DataFrame soddisfa tutte e tre le condizioni.

Risorse addizionali

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

Panda: come trovare la differenza tra due linee
Panda: come eliminare le righe contenenti una stringa specifica
Panda: come rimuovere le righe duplicate in un DataFrame

Aggiungi un commento

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