医療職からデータサイエンティストへ医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。”pd.mearge”はもう遅い、Python"join"で高速データ結合2021-02-27”pd.mearge”はもう遅い、Python"join"で高速データ結合PythonPythonである値をkeyにデータを結合をしたいとき、pandasのmergeが使えますが、データの行数が膨大だと実行に時間がかかります。www.medi-08-data-06.workそんなときには、joinを使うことで、データ結合の処理速度を上げることができます。joinを使って実際にやってみましょう。架空のデータセットを作ります。あるときのお店の売り上げデータ(100行)と、そのお店の社長名を格納したマスターデータです。Kanayama目的はこのstore_dataに、店舗名をkeyにして社長名を結合することです。王道のmergeを使った書き方では、このようになります。実行時間も計測しておきましょう。notebookであれば、%timeitを使うことで、複数回実行した場合の平均的な実行時間を計測してくれます。each)続いてjoinです。joinは結合する左側テーブルのkeyはon句で指定し、右側はindexがkeyになります。each)pandasのmergeが975usに対して、joinでは664usとなりました。mergeの速度のばらつきが10.4usであるのに対して、joinでは467nsと、安定した速度で結合できていますね!mergeとjoinはどちらを使うべきか個人的には、通常はjoinの方が速度が速く、メソッドチェーンで複数繋ぐことができるので、joinを使っていきたいです。結合のkeyが複数になった場合は、可読性からもmergeを使った方が良いかもしれないです。その他、joinとmergeの挙動の違いや、使い分けなどご意見ありましたら、是非ともコメントいただけると幸いです!※本記事は筆者が個人的に学んだこと感じたことをまとめたブログになります。所属する組織の意見・見解とは無関係です。学んだこと、日々の所感をまとめていきます。※本ブログは筆者が個人的に学んだこと感じたことをまとめたブログになります。所属する組織の意見・見解とは無関係です。medi_data0826引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。