Panda: come utilizzare la variabile nella funzione query()


È possibile utilizzare la seguente sintassi per utilizzare la funzione query() in panda e fare riferimento a un nome di variabile:

 df. query (' team == @team_name ')

Questa particolare query cerca righe in un DataFrame panda in cui la colonna del team è uguale al valore memorizzato nella variabile chiamata team_name .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come utilizzare una variabile nella query Panda

Supponiamo di avere il seguente DataFrame panda che contiene informazioni su vari giocatori di basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

Supponiamo ora di voler trovare le righe in cui il valore nella colonna della squadra è uguale a C.

Possiamo utilizzare la seguente sintassi per creare una variabile chiamata team_name che sia uguale a “C”, quindi fare riferimento a questa variabile nella funzione query() :

 #specify team name to search for
team_name = ' C '

#query for rows where team is equal to team_name
df. query (' team == @team_name ')

        team position points
7 C G 17
8 C G 20
9 C F 19
10 C F 22

Tieni presente che la funzione query() restituisce tutte le righe in cui il valore nella colonna del team è uguale a C.

Tieni inoltre presente che, se lo desideriamo, possiamo fare riferimento a più variabili nella funzione query() .

Ad esempio, il codice seguente mostra come utilizzare la funzione query() per restituire tutte le righe in cui il valore nella colonna team è uguale al valore di una variabile denominata team_A o di una variabile denominata team_C :

 #create two variables
team_A = ' A ' 
team_C = ' C '

#query for rows where team is equal to either of the two variables
df. query (' team == @team_A | team == @team_C ')

        team position points
0 A G 22
1 A G 25
2 A F 24
7 C G 17
8 C G 20
9 C F 19
10 C F 22

La query restituisce tutte le righe nel DataFrame in cui team è uguale ai valori memorizzati in una delle due variabili che abbiamo specificato.

Nota : puoi trovare la documentazione completa della funzione pandas query() qui .

Risorse addizionali

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

Panda: come filtrare le righe in base alla lunghezza della stringa
Panda: come eliminare le righe in base alla condizione
Panda: come utilizzare il filtro “NO IN”.

Aggiungi un commento

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