Panda: come utilizzare isin per più colonne
È possibile utilizzare i seguenti metodi con la funzione pandas isin() per filtrare in base a più colonne in un DataFrame pandas:
Metodo 1: filtra quando più colonne equivalgono a valori specifici
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
Questo particolare esempio filtra il DataFrame per le righe in cui la colonna della squadra è uguale a “A” e la colonna di posizione è uguale a “Guardia”.
Metodo 2: filtrare in cui almeno una colonna equivale a un valore specifico
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
Questo particolare esempio filtra il DataFrame per le righe in cui la colonna della squadra è uguale a “A” o la colonna di posizione è uguale a “Guardia”.
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'], ' position ': ['Guard', 'Guard', 'Forward', 'Forward', 'Guard', 'Guard', 'Forward', 'Forward'], ' points ': [11, 18, 10, 22, 26, 35, 19, 12]}) #view DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35 6 B Forward 19 7 B Forward 12
Esempio 1: filtro in cui più colonne equivalgono a valori specifici
Possiamo utilizzare la seguente sintassi per filtrare DataFrame in modo che contenga solo righe in cui la colonna della squadra è uguale a “A” e la colonna di posizione è uguale a “Guardia”.
#filter rows where team column is 'A' and position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18
Tieni presente che solo le righe in cui la colonna della squadra è uguale a “A” e la colonna di posizione è uguale a “Guardia” rimangono nel DataFrame filtrato.
Esempio 2: filtro in cui almeno una colonna equivale a un valore specifico
Possiamo utilizzare la seguente sintassi per filtrare DataFrame in modo che contenga solo righe in cui la colonna della squadra è uguale a “A” o la colonna di posizione è uguale a “Guardia”.
#filter rows where team column is 'A' or position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35
Tieni presente che solo le righe in cui la colonna della squadra è uguale a “A” o la colonna di posizione è uguale a “Guardia” rimangono nel DataFrame filtrato.
Nota : puoi trovare la documentazione completa per la funzione panda isin() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:
Panda: come aggiungere un filtro alla tabella pivot
Panda: come filtrare “Non contiene”
Panda: come filtrare le righe contenenti una stringa specifica