それらをつなげよう!
前回のレッスンでは、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)