Python前処理講座

【pandas】merge:キー結合【データフレーム処理】

こんにちは,shun(@datasciencemore)です!!

今回はmergeについて学習していきます.

mergeは,キー結合をするメソッドです.

キー結合とは,2つのデータフレームをキーをもとに1つに結合することです.

キー結合には

  1. inner_join
  2. left_join
  3. right_join
  4. outer_join

の4種類の結合方法があります.

今回は,こちらの2つのデータフレームをキー結合するとどうなるかを確認しようと思います.

0.準備

1.inner_join

まずキー結合の中で一番よく使われるinner_joinから説明していきます.

日本語だと内部結合っていいます.

inner_joinは,2つのデータフレームに共通するキーに対して,結合することをいいます.
この例の場合,

df_nameのキーが「1,2,3,5」,df_groupのキーが「1,2,3,4」なので,
共通するキーは,「1,2,3」になりますね.

このキーに対して2つのデータフレームを結合します.

結合するときにどのような処理が行われているかというと

それぞれのデータフレームからキー毎に違う色の線を伸ばしてあげます.
(キーが1 ⇒ ピンク,キーが2 ⇒ 緑,キーが3 ⇒ 青,キーが4⇒赤,キーが5⇒黄)

これらの伸びた線を見て,同じ色が交差する交点が,出力されるデータフレームの各行に対応します.

図の左側を見ると,ピンクが2点,緑が1点,青が1点,交差していますね.

これらの交点の情報を右側のデータフレームのように出力します.

右側のデータフレームの各行に対応していることをきちんと確認してくださいね.

2.left_join

続きましてleft_joinです.

日本語だと左結合っていいます.

left_joinは,左側のデータフレームのすべてのキーに対して,結合することをいいます.

今回の例の場合,
左側のデータフレームは,df_nameでキーが「1,2,3,5」,
右側のデータフレームは,df_groupでキーが「1,2,3,4」なので,
左側のデータフレームのキーは,「1,2,3,5」になりますね.

ここで1点注意のなのですが,右側のdf_groupにキー5がないですよね?

このようなときは,NAの行を挿入して考えてください.

そうすれば線を引くことができるので,あとは先ほどと同様,交差する点が出力されると考えられます.

3.right_join

続きましてright_joinです.

日本語だと右結合っていいます.

right_joinは,右側のデータフレームのすべてのキーに対して,結合します.

さっきやったleft_joinの反対だから,わかりやすいですね.
ただ,左と右が違うだけです.

今回の例の場合,
右側のデータフレームは,df_groupでキーが「1,2,3,4」なので,
「1,2,3,4」をキーとしてキー結合します.

今回は,左側のデータフレームにキー4がないので,キー4に対してNAの行を作成してあげましょう.

4.outer_join

最後はouter_joinです.

日本語だと外部結合っていいます.

今までのことが理解できていればそんなに難しくありません.
outer_joinは,2つのデータフレームのすべてのキーに対して,結合します.

今回の例の場合,
df_nameのキーが「1,2,3,5」,df_groupのキーが「1,2,3,4」なので,
full_joinに使用されるのキーは,「1,2,3,4,5」になりますね.
これも今までと同様に,キーがない場合については,NAの行を挿入してあげます.
df_nameにはキー4が,df_groupにはキー5がないから,それぞれについてNAの行を挿入して考えてくださいね.

まとめ

今回は,merge:キー結合について学習しました.

キー結合とは,2つのデータフレームをキーをもとに1つに結合することです.

キー結合には次の4種類があります.

  1. inner_join
  2. left_join
  3. right_join
  4. outer_join

この中で一番使用頻度が高いのはinner_joinなので,まずはinner_joinを使いこなせるようになりましょう!

それでは,お疲れさまでした!!

次回

【pandas】concat:縦横結合【データフレーム処理】

こんにちは,shun(@datasciencemore)です!! 今回はconcatについて学習していきます. concatは,縦横結合をするメソッドです. concatを使用することで前回やったキー ...

続きを見る

-Python前処理講座