重複の処理
前の演習では、ride_sharing に取り込まれる新しい更新にバグがあり、ride_id 列の一部の値について、完全な重複行と不完全な重複行の両方が生成されていること、さらに user_birth_year と duration 列に食い違いが時折あることを確認しました。
この演習では、まず完全な重複行を削除し、その後、不完全な重複行を1つに統合します。その際、各不完全重複の集合について、duration は平均、user_birth_year は最小値を保持します。
この演習はコースの一部です
Pythonで学ぶデータクリーニング
演習の手順
ride_sharingから完全な重複を削除し、結果をride_dupに保存します。user_birth_yearに対しては最小値(min)、durationに対しては平均(mean)の集約を保持するstatistics辞書を作成します。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