Panda: come utilizzare il metodo isin() con il metodo query()


Spesso potresti voler utilizzare la funzione isin() nel metodo query() in panda per filtrare le righe in un DataFrame in cui una colonna contiene un valore in un elenco.

A tale scopo è possibile utilizzare la seguente sintassi:

 df. query (' team in ["A", "B", "D"] ')

Questa particolare query filtra le righe da un DataFrame panda in cui la colonna del team è uguale ad A, B o D.

Nota : è necessario utilizzare in anziché isin quando si utilizza il metodo panda query() .

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

Esempio: utilizzare il metodo query() per filtrare i valori nell’elenco

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', 'B', 'B', 'C', 'C', 'D', 'E'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 B 19 7 10
3 B 14 9 6
4 C 14 12 6
5 C 11 9 5
6 D 20 9 9
7 E 28 4 12

Ora supponiamo di voler trovare le righe in cui il valore nella colonna della squadra è uguale ad A, B o D.

Possiamo usare la seguente sintassi per fare questo:

 #query for rows where team is in list of specific teams
df. query (' team in ["A", "B", "D"] ')

	team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 B 19 7 10
3 B 14 9 6
6 D 20 9 9

Tieni presente che la funzione query() restituisce tutte le righe in cui il valore nella colonna del team è uguale ad A, B o D.

Tieni inoltre presente che possiamo memorizzare un elenco di nomi di team in una variabile e quindi fare riferimento alla variabile nella funzione query() utilizzando l’operatore @ :

 #create variable to hold specific team names
team_names = [" A ", " B ", " D "]

#query for rows where team is equal to a team name in team_names variable
df. query (' team in @team_names ')

	team points assists rebounds
0 A 18 5 11
1 to 22 7 8
2 B 19 7 10
3 B 14 9 6
6 D 20 9 92

La query restituisce tutte le righe nel DataFrame in cui team è uguale a uno dei nomi del team archiviati nella variabile team_names .

Tieni presente che i risultati di questa query corrispondono a quelli dell’esempio precedente.

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 *