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.