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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *