Menangani duplikasi
Pada latihan sebelumnya, Anda telah memverifikasi bahwa pembaruan baru yang mengalir ke ride_sharing mengandung bug yang menghasilkan baris duplikat lengkap dan tidak lengkap untuk beberapa nilai kolom ride_id, dengan sesekali terdapat nilai yang berbeda pada kolom user_birth_year dan duration.
Pada latihan ini, Anda akan menangani baris-baris duplikat tersebut dengan terlebih dahulu menghapus duplikat lengkap, lalu menggabungkan baris duplikat tidak lengkap menjadi satu sambil mempertahankan nilai rata-rata duration, dan nilai minimum user_birth_year untuk setiap kumpulan baris duplikat tidak lengkap.
Latihan ini adalah bagian dari kursus
Membersihkan Data di Python
Petunjuk latihan
- Hapus duplikat lengkap di
ride_sharingdan simpan hasilnya keride_dup. - Buat kamus
statisticsyang memuat agregasi minimum untukuser_birth_yeardan agregasi mean untukduration. - Hapus duplikat tidak lengkap dengan melakukan pengelompokan berdasarkan
ride_iddan menerapkan agregasi dalamstatistics. - Temukan duplikat kembali dan jalankan pernyataan
assertuntuk memverifikasi proses de-duplikasi.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Drop complete duplicates from ride_sharing
ride_dup = ____.____()
# Create statistics dictionary for aggregation function
statistics = {'user_birth_year': ____, 'duration': ____}
# Group by ride_id and compute new statistics
ride_unique = ride_dup.____('____').____(____).reset_index()
# Find duplicated values again
duplicates = ride_unique.____(subset = 'ride_id', keep = False)
duplicated_rides = ride_unique[duplicates == True]
# Assert duplicates are processed
assert duplicated_rides.shape[0] == 0