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

Aggiungi un commento

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