Cara menghapus baris di pandas dataframe berdasarkan kondisi
Kita dapat menggunakan sintaks berikut untuk menghapus baris di pandas DataFrame berdasarkan kondisi:
Metode 1: Hapus baris berdasarkan satu kondisi
df = df[df. col1 > 8]
Metode 2: Hapus baris berdasarkan beberapa kondisi
df = df[(df. col1 > 8) & (df. col2 != ' A ')]
Catatan : Kita juga dapat menggunakan fungsi drop() untuk menghapus baris dari DataFrame, namun fungsi ini terbukti jauh lebih lambat daripada sekadar menetapkan DataFrame ke versi yang difilter itu sendiri.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya dengan pandas DataFrame berikut:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' pos ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team pos assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Metode 1: Hapus baris berdasarkan satu kondisi
Kode berikut menunjukkan cara menghapus baris di DataFrame berdasarkan kondisi:
#drop rows where value in 'assists' column is less than or equal to 8
df = df[df. assists > 8]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
Setiap baris dengan nilai kurang dari atau sama dengan 8 di kolom “bantuan” telah dihapus dari DataFrame.
Metode 2: Hapus baris berdasarkan beberapa kondisi
Kode berikut menunjukkan cara menghapus baris di DataFrame berdasarkan beberapa kondisi:
#only keep rows where 'assists' is greater than 8 and rebounds is greater than 5
df = df[(df. assists > 8) & (df. rebounds > 5)]
#view updated DataFrame
df
team pos assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
Satu-satunya baris yang kami simpan di DataFrame adalah baris yang nilai assistnya lebih besar dari 8 dan nilai reboundnya lebih besar dari 5.
Perhatikan bahwa kita juga dapat menggunakan | operator untuk menerapkan filter “atau”:
#only keep rows where 'assists' is greater than 8 or rebounds is greater than 10
df = df[(df. assists > 8) | (df. rebounds > 10)]
#view updated DataFrame
df
team pos assists rebounds
0 A G 5 11
3 A F 9 6
4 B G 12 6
5 B G 9 5
6 B F 9 9
7 B F 4 12
Satu-satunya baris yang kami simpan di DataFrame adalah baris yang nilai bantuannya lebih besar dari 8 atau nilai pantulan lebih besar dari 10.
Setiap baris yang tidak memenuhi salah satu ketentuan ini akan dihapus.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
Cara menghapus baris yang berisi nilai tertentu di Pandas
Cara menghapus baris yang berisi string tertentu di Pandas
Cara menghapus baris berdasarkan indeks di Pandas