Pandas: bagaimana cara memfilter item “tidak mengandung”?
Anda dapat menggunakan metode berikut untuk melakukan filter “Tidak Berisi” di pandas DataFrame:
Metode 1: Filter baris yang tidak berisi string tertentu
filtered_df = df[df[' my_column ']. str . contains (' some_string ') == False ]
Metode 2: Filter baris yang tidak berisi salah satu dari beberapa string tertentu
filtered_df = df[df[' my_column ']. str . contains (' string1|string2|string3 ') == False ]
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Nets', 'Rockets', 'Mavs', 'Spurs', 'Kings', 'Nuggets'], ' points ': [18, 22, 19, 14, 14, 11], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame print (df) team points assists rebounds 0 Nets 18 5 11 1 Rockets 22 7 8 2 Mavs 19 7 10 3 Spurs 14 9 6 4 Kings 14 12 6 5 Nuggets 11 9 5
Contoh 1: Filter baris yang tidak berisi string tertentu
Kode berikut menunjukkan cara memfilter pandas DataFrame untuk baris yang kolom timnya tidak mengandung “ets” pada namanya:
#filter for rows that do not contain 'ets' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets ') == False ]
#view filtered DataFrame
print (filtered_df)
team points assists rebounds
2 Mavs 19 7 10
3 Spurs 14 9 6
4 Kings 14 12 6
Perhatikan bahwa DataFrame yang dihasilkan tidak berisi baris apa pun yang nilainya di kolom tim berisi “ets” pada namanya.
Secara khusus, tim berikut telah dikecualikan dari DataFrame:
- Jaring
- Roket
- Nugget
Perhatikan bahwa masing-masing nama tim ini memiliki “ets” di namanya.
Contoh 2: Filter baris yang tidak berisi salah satu dari beberapa string tertentu
Kode berikut menunjukkan cara memfilter pandas DataFrame untuk baris yang kolom timnya tidak mengandung “ets” pada namanya:
#filter for rows that do not contain 'ets' or 'urs' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets|urs ') == False ]
#view filtered DataFrame
print (filtered_df)
team points assists rebounds
2 Mavs 19 7 10
4 Kings 14 12 6
Perhatikan bahwa DataFrame yang dihasilkan tidak berisi baris apa pun yang nilainya di kolom tim berisi “ets” atau “urs” pada namanya.
Catatan : | Operator berarti “ATAU” dalam panda.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi pemfilteran umum lainnya di panda:
Cara memfilter Pandas DataFrame berdasarkan nilai kolom
Cara memfilter baris Pandas DataFrame berdasarkan tanggal
Cara memfilter Pandas DataFrame pada berbagai kondisi