Pandas DataFrame – Method Filtering duplicated()

Filtering berikutnya adalah berhubungan dengan data unik. Ada 3 method yang akan dibahas, yaitu: duplicated(), drop_duplicated(), unique dan nunique().

Data yang digunakan masih menggunakan modul sebelumnya.

Method duplicated()

Method duplicated() memilki parameter keep yang dapat diisi dengan 3 argumen:

  • first : data pertama akan ditandai sebagai not duplicated, default adalah first.
  • last: data terakhir akan ditandai sebagai not duplicated.
  • False: semua data duplikat akan ditandai sebagai duplicated.

Penggunaan ketiga argument diatas akan dibahas secara detail dibawah.

Pertama kita sort dahulu data berdasarkan First Name, agar kita bisa lihat secara langsung data yang duplikat.

df.sort_values("First Name", inplace=True)

Contoh memeriksa data pegawai dengan First Name duplikat, dengan parameter keep=first.

df["First Name"].duplicated()
#sama dengan df["First Name"].duplicated(keep="first")
101    False
327     True
440     True
937     True
137    False
       ...  
902     True
925     True
946     True
947     True
951     True
Name: First Name, Length: 1000, dtype: bool

Jika kita cek nilai dari First Name dengan perintah df[“First Name”] akan berisi seperti berikut.

101    Aaron
327    Aaron
440    Aaron
937    Aaron
137     Adam
       ...  
902      NaN
925      NaN
946      NaN
947      NaN
951      NaN
Name: First Name, Length: 1000, dtype: object

Jadi argument first akan menandai Nama pertama yang ditemukan sebagai non duplicate. Contoh Untuk 101 Aaron, ditandai duplicate, sementara Aaron lainnya dengan index 327, 440 dan 937 akan ditandai duplicate.

Jika menggunakan menggunakan argument keep=”last:, maka Nama terakhir yang ditandai sebagai non duplicate.

df["First Name"].duplicated(keep="last")
101     True
327     True
440     True
937    False
137     True
       ...  
902     True
925     True
946     True
947     True
951    False
Name: First Name, Length: 1000, dtype: bool

Sedangkan dengan menggunakan keep=False, maka semua duplicate value akan ditandai duplicate.

df["First Name"].duplicated(keep=False)
101    True
327    True
440    True
937    True
137    True
       ... 
902    True
925    True
946    True
947    True
951    True
Name: First Name, Length: 1000, dtype: bool

Latihan

Sebagai latihan, tampilkan data pegawai yang tidak duplikat. Tips: gunakan tanda ~ untuk melakukan negasi.

Solusi

kond = ~df["First Name"].duplicated(keep=False)
df[kond]

DataFrame diatas akan berisi data non duplikat.

Sharing is caring:

Leave a Comment