SEが教えるEC運営のブログ ウェブ運用と開発現場を経験したSEのTIPS
TOP > BLOG > IT記事

pandas.DataFrameを結合するmergeでleft_onとright_onの使い方に関する備忘録

早川朋孝 早川朋孝
EC専門のSE

pandas.DataFrameを結合するmergeでleft_onとright_onの使い方に関する備忘録

いま自分でpythonを使ってレコメンドエンジンを作ろうと準備をしているのですが、その過程でpandas.DataFrameのライブラリを使い異なるテーブル2つを結合させて、データを分析する場面に出くわしました。

これをするにはmerge()という関数を使い、left_on、right_onという引数を使えば希望の動作になるらしいことが分かったのですが、left_onとright_onの使い方がよく分からん。なのでネットで調べたのですが、どうもしっくり説明しているページがないのです。

さらに手元に『Pythonによるあたらしいデータ分析の教科書』という書籍があり、pandasの章を調べたけどこちらにも載っていない。もちろん巻末の牽引にもない。

ということで、これは自分で調べるしかないと思い、どういう動きをするかいろいろ自分で試しました。その結果得られたleft_onとright_onの説明は以下の通りです。

2つの相異なるテーブルを結合する際、それぞれのテーブルに同じカラム名が存在しない場合、どの列をkeyとしてマージするかを決定するのがleft_onとright_onである(違ったらすみません)

使用例

以下のような2つのtableがあるとします。

table1
index key1 key2
0 1 2
0 3 4
table2
index key11 key12
0 11 2
0 13 4

left_onでtable1のkey2を、right_onでtable2のkey12を指定してみましょう。

#pd.merge(table1, table2, left_on=’key2′, right_on=’key12′)

そうすると以下のように結合されます。

merge
index key1 key2 key11 key12
0 1 2 11 2
0 3 4 13 4

例えば、ECサイトのデータベースなどで、顧客の購入履歴に商品IDが「item_ID]というカラム名で登録があり、一方で商品データには商品IDは「ID」というようなデータを分析するような場合に、このleft_on、right_onを使う機会があるでしょう。

×

メルマガ登録

SEが商品登録、在庫管理、発注などのEC業務を効率よくプログラムで実施する方法を無料配信します。

  • APIやツールによる業務効率化
  • 広告運用に関するTips
  • CVRを改善するアクセス解析のコツ
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
Web運用の経験もあり、アクセス解析、広告運用が得意で、広告APIとプログラムとの合わせ技で並の広告代理店にはできない提案が可能です。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP