重複への対応
前の演習では、ride_sharing にフィードされる新しいアップデートに、ride_id 列の一部の値に対して完全な重複行と不完全な重複行の両方を生成するバグが含まれていることを確認しました。また、user_birth_year 列と duration 列の値に、時折食い違いがありました。
この演習では、まず完全な重複行を削除し、次に不完全な重複行を1行にまとめる処理を行います。その際、各重複セットについて duration の平均値と user_birth_year の最小値を保持します。
この演習はコースの一部です
Pythonによるデータクリーニング
演習の手順
ride_sharingの完全な重複を削除し、結果をride_dupに格納してください。statistics辞書を作成し、user_birth_yearに min(最小値)、durationに mean(平均値)の集計を設定してください。ride_idでグループ化し、statisticsの集計を適用することで、不完全な重複を削除してください。- 再度重複を確認し、
assert文を実行して重複解消を検証してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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