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

Tambahkan komentar

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