Cara menggunakan filter “not in” di pandas (dengan contoh)


Anda dapat menggunakan sintaks berikut untuk melakukan filter “NOT IN” di pandas DataFrame:

 df[ ~ df[' col_name ']. isin (values_list)]

Perhatikan bahwa nilai dalam Values_list dapat berupa nilai numerik atau nilai karakter.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: Lakukan filter “NON IN” dengan kolom

Kode berikut menunjukkan cara memfilter pandas DataFrame untuk baris di mana nama tim tidak ada dalam daftar nama:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' A ', ' B ']

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

        team points assists rebounds
6 C 25 9 9
7 C 29 4 12

Dan kode berikut menunjukkan cara memfilter DataFrame pandas untuk baris yang kolom “titik” tidak berisi nilai tertentu:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of values we don't want
values_list = [12, 15, 25]

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

	team points assists rebounds
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
7 C 29 4 12

Contoh 2: Lakukan filter “NON IN” dengan beberapa kolom

Kode berikut menunjukkan cara memfilter pandas DataFrame untuk baris di mana nama tim tertentu tidak ada di salah satu dari beberapa kolom:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' star_team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' backup_team ': ['B', 'B', 'C', 'C', 'D', 'D', 'D', 'E'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' C ', ' E ']

#filter for rows where team name is not in one of several columns
df[ ~ df[[' star_team ', ' backup_team ']]. isin (values_list). any (axis= 1 )] 

        star_team backup_team points assists rebounds
0 A B 25 5 11
1 A B 12 7 8
4 B D 19 12 6
5 B D 23 9 5

Perhatikan bahwa kami memfilter setiap baris di mana tim “C” atau “E” muncul di kolom “star_team” atau di kolom “backup_team”.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi pemfilteran umum lainnya di panda:

Cara menggunakan “Is Not Null” di Pandas
Cara memfilter Pandas DataFrame berdasarkan nilai kolom
Cara memfilter baris Pandas DataFrame berdasarkan tanggal
Cara memfilter Pandas DataFrame pada berbagai kondisi

Tambahkan komentar

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