Pandas: menghapus baris berdasarkan beberapa kondisi


Anda dapat menggunakan metode berikut untuk menghapus baris berdasarkan beberapa kondisi di pandas DataFrame:

Metode 1: Hapus baris yang memenuhi salah satu dari beberapa kondisi

 df = df. loc [ ~ ((df[' col1 '] == ' A ') | (df[' col2 '] > 6 ))]

Contoh khusus ini akan menghapus semua baris yang nilai col1 sama dengan A atau nilai col2 lebih besar dari 6.

Metode 2: Hapus baris yang memenuhi beberapa kondisi

 df = df. loc [ ~ ((df[' col1 '] == ' A ') & (df[' col2 '] > 6 ))] 

Contoh khusus ini akan menghapus semua baris yang nilai col1 sama dengan A dan nilai col2 lebih besar dari 6.

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'],
                   ' pos ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' assists ': [5, 7, 7, 9, 12, 9, 3, 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 3 9
7 B F 4 12

Contoh 1: Hapus baris yang memenuhi salah satu dari beberapa kondisi

Kode berikut menunjukkan cara menghapus baris di DataFrame yang nilai di kolom Tim sama dengan A atau nilai di kolom Kehadiran lebih besar dari 6:

 #drop rows where value in team column == 'A' or value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') | (df[' assists '] > 6 ))]

#view updated DataFrame
print (df)

  team pos assists rebounds
6 BF 3 9
7 BF 4 12

Perhatikan bahwa semua baris di mana kolom tim sama dengan A atau kolom assist lebih besar dari 6 telah dihapus.

Untuk DataFrame khusus ini, enam baris telah dihapus.

Catatan : | simbol tersebut mewakili logika “ATAU” dalam panda.

Contoh 2: Hapus baris yang memenuhi beberapa kondisi

Kode berikut menunjukkan cara menghapus baris di DataFrame yang nilai di kolom Tim sama dengan A dan nilai di kolom Kehadiran lebih besar dari 6:

 #drop rows where value in team column == 'A' and value in assists column > 6
df = df. loc [ ~ ((df[' team '] == ' A ') & (df[' assists '] > 6 ))]

#view updated DataFrame
print (df)

  team pos assists rebounds
0 AG 5 11
4 BG 12 6
5 BG 9 5
6 BF 3 9
7 BF 4 12

Perhatikan bahwa semua baris di mana kolom tim sama dengan A dan kolom assist lebih besar dari 6 telah dihapus.

Untuk DataFrame khusus ini, tiga baris telah dihapus.

Catatan : Simbol & mewakili logika “DAN” di panda.

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 *