始める無料で始める

重複の処理

前の演習では、ride_sharing に取り込まれる新しい更新にバグがあり、ride_id 列の一部の値について、完全な重複行と不完全な重複行の両方が生成されていること、さらに user_birth_yearduration 列に食い違いが時折あることを確認しました。

この演習では、まず完全な重複行を削除し、その後、不完全な重複行を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
コードを編集して実行