Pandy: jak używać isin dla wielu kolumn
Aby filtrować na podstawie wielu kolumn w ramce DataFrame pandy, można użyć następujących metod z funkcją pandas isin() :
Metoda 1: Filtruj, gdy wiele kolumn ma równe wartości
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
Ten konkretny przykład filtruje ramkę DataFrame pod kątem wierszy, w których kolumna zespołu ma wartość „A” , a kolumna pozycji jest równa „Ochrona”.
Metoda 2: Filtruj, gdy co najmniej jedna kolumna ma określoną wartość
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
Ten konkretny przykład filtruje ramkę DataFrame pod kątem wierszy, w których kolumna zespołu ma wartość „A” lub kolumna pozycji jest równa „Ochrona”.
Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:
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
Przykład 1: Filtr, w przypadku którego wiele kolumn ma równe określone wartości
Możemy użyć poniższej składni, aby przefiltrować ramkę DataFrame tak, aby zawierała tylko wiersze, w których kolumna zespołu jest równa „A” , a kolumna pozycji jest równa „Ochrona”.
#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
Należy pamiętać, że w filtrowanej ramce danych pozostają tylko wiersze, w których kolumna zespołu jest równa „A” , a kolumna pozycji ma wartość „Strażnik”.
Przykład 2: Filtr, w którym co najmniej jedna kolumna ma określoną wartość
Możemy użyć poniższej składni, aby przefiltrować ramkę DataFrame tak, aby zawierała tylko wiersze, w których kolumna zespołu jest równa „A” lub kolumna pozycji jest równa „Ochrona”.
#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
Należy pamiętać, że w filtrowanej ramce danych pozostają tylko wiersze, w których kolumna zespołu jest równa „A” lub kolumna pozycji ma wartość „Strażnik”.
Uwaga : pełną dokumentację funkcji panda isin() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: Jak dodać filtr do tabeli przestawnej
Pandy: jak filtrować „Nie zawiera”
Pandy: jak filtrować wiersze zawierające określony ciąg znaków