Duplicaten behandelen
In de vorige oefening heb je kunnen bevestigen dat de nieuwe update die ride_sharing voedt een bug bevat die zowel volledige als onvolledige dubbele rijen genereert voor sommige waarden in de kolom ride_id, met af en toe afwijkende waarden voor de kolommen user_birth_year en duration.
In deze oefening ga je die dubbele rijen behandelen door eerst volledige duplicaten te verwijderen en vervolgens de onvolledige dubbele rijen samen te voegen tot één rij, waarbij je de gemiddelde duration en de minimale user_birth_year behoudt voor elke set onvolledige dubbele rijen.
Deze oefening maakt deel uit van de cursus
Data opschonen in Python
Oefeninstructies
- Verwijder volledige duplicaten in
ride_sharingen sla de resultaten op inride_dup. - Maak de dictionary
statisticsdie minimale aggregatie vooruser_birth_yearen mean-aggregatie voordurationbevat. - Verwijder onvolledige duplicaten door te groeperen op
ride_iden de aggregatie instatisticstoe te passen. - Zoek opnieuw naar duplicaten en voer de
assert-instructie uit om de deduplicatie te verifiëren.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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