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