始める無料で始める

それらをつなげよう!

前回のレッスンでは、restaurantsとrestaurants_newを結びつけるための取り組みの大部分をすでに終えました。一致する可能性のある行の異なるペアを生成し、cuisine_type列とcity列の正確な一致を探し、rest_name列の類似した文字列を比較しました。スコアを含むデータフレームはpotential_matchesに保存しました。

ついに両方のDataFrameをリンクする時が来ました。まず、上記の列間で一致するrestaurants_newの行インデックスをpotential_matchesから抽出します。次にこれらのインデックスに基づいてrestaurants_newを絞り込み、最後に重複しない値をrestaurantsで連結します。すべてのDataFrameは環境内で利用でき、pandasとしてインポートされたpdもあります。

この演習はコースの一部です

Pythonによるデータクリーニング

コースを見る

演習の手順

  • potential_matches法を用いて、行の合計が3以上である.sum()のインスタンスを分離する。
  • matchesメソッドを用いて、restaurants_newの一致するレコードの行インデックスを表す.get_level_values()から2列目のインデックスを抽出します。
  • restaurants_newに含まれていない行の部分集合matching_indices。
  • restaurantsとnon_dupを連結する。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Isolate potential matches with row sum >=3
matches = ____[____.___(____) >= ____]

# Get values of second column index of matches
matching_indices = matches.____.____(____)

# Subset restaurants_new based on non-duplicate values
non_dup = ____[~restaurants_new.index.____(____)]

# Concatenate restaurants and non_dup
full_restaurants = pd.____([____, ____])
print(full_restaurants)
コードを編集して実行