Panda: estrae il valore della colonna in base a un'altra colonna


È possibile utilizzare la funzione query() nei panda per estrarre il valore in una colonna in base al valore in un’altra colonna.

Questa funzione utilizza la seguente sintassi di base:

 df. query (" team=='A' ")[" points "]

Questo particolare esempio estrarrà ciascun valore dalla colonna dei punti in cui la colonna della squadra è uguale ad A.

I seguenti esempi mostrano come utilizzare questa sintassi in pratica con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [11, 28, 10, 26, 6, 25, 29, 12]})

#view DataFrame
print (df)

  team position points
0 AG 11
1 AG 28
2 AF10
3AF 26
4 BG 6
5 BG 25
6 BF 29
7 BF 12

Esempio 1: estrarre i valori delle colonne in base a una condizione soddisfatta

Il codice seguente mostra come estrarre ciascun valore dalla colonna dei punti in cui il valore della colonna della squadra è uguale ad “A”:

 #extract each value in points column where team is equal to 'A'
df. query (" team=='A' ")[" points "]

0 11
1 28
2 10
3 26
Name: points, dtype: int64

Questa funzione restituisce i quattro valori nella colonna dei punti dove il valore corrispondente nella colonna della squadra è uguale ad “A”.

Esempio 2: estrarre i valori delle colonne in base a una delle numerose condizioni soddisfatte

Il codice seguente mostra come estrarre ciascun valore dalla colonna dei punti in cui il valore della colonna della squadra è uguale a “A” o il valore della colonna di posizione è uguale a “G”:

 #extract each value in points column where team is 'A' or position is 'G'
df. query (" team=='A' | position=='G' ")[" points "]

0 11
1 28
2 10
3 26
4 6
5 25
Name: points, dtype: int64

Questa funzione restituisce i sei valori nella colonna dei punti dove il valore corrispondente nella colonna della squadra è uguale ad “A” o il valore nella colonna della posizione è uguale a “G”.

Esempio 3: estrarre i valori delle colonne in base a più condizioni soddisfatte

Il codice seguente mostra come estrarre ciascun valore dalla colonna dei punti in cui il valore della colonna della squadra è uguale a “A” e il valore della colonna di posizione è uguale a “G”:

 #extract each value in points column where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' ")[" points "]

0 11
1 28
Name: points, dtype: int64

Questa funzione restituisce i due valori nella colonna dei punti dove il valore corrispondente nella colonna della squadra è uguale ad “A” e il valore nella colonna della posizione è uguale a “G”.

Risorse addizionali

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

Panda: come selezionare le colonne in base alla condizione
Panda: elimina le righe in base a più condizioni
Panda: aggiorna i valori delle colonne in base a un altro DataFrame

Aggiungi un commento

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