Webは用いる人のリテラシーで決まる ウェブ運用と開発現場を経験したエンジニアの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を使う機会があるでしょう。

×
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP