Pandas: cara menggunakan isin untuk banyak kolom
Anda dapat menggunakan metode berikut dengan fungsi pandas isin() untuk memfilter berdasarkan beberapa kolom di pandas DataFrame:
Metode 1: Filter ketika beberapa kolom sama dengan nilai tertentu
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
Contoh khusus ini memfilter DataFrame untuk baris dengan kolom tim sama dengan “A” dan kolom posisi sama dengan “Penjaga”.
Metode 2: Filter jika setidaknya satu kolom sama dengan nilai tertentu
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
Contoh khusus ini memfilter DataFrame untuk baris dengan kolom tim sama dengan “A” atau kolom posisi sama dengan “Penjaga”.
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:
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
Contoh 1: Filter jika beberapa kolom sama dengan nilai tertentu
Kita dapat menggunakan sintaks berikut untuk memfilter DataFrame agar hanya berisi baris dengan kolom tim sama dengan “A” dan kolom posisi sama dengan “Penjaga”.
#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
Perhatikan bahwa hanya baris dengan kolom tim sama dengan “A” dan kolom posisi sama dengan “Penjaga” yang tetap berada dalam DataFrame yang difilter.
Contoh 2: Filter jika setidaknya satu kolom sama dengan nilai tertentu
Kita dapat menggunakan sintaks berikut untuk memfilter DataFrame agar hanya berisi baris dengan kolom tim sama dengan “A” atau kolom posisi sama dengan “Penjaga”.
#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
Perhatikan bahwa hanya baris dengan kolom tim sama dengan “A” atau kolom posisi sama dengan “Penjaga” yang tetap berada dalam DataFrame yang difilter.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi pandas isin() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: Cara menambahkan filter ke tabel pivot
Pandas: Cara memfilter “Tidak mengandung”
Pandas: cara memfilter baris yang berisi string tertentu