べくとりうむ.py Written by TicTak(※現在ブログ工事中のため、見づらい点があり申し訳ないです)

【Python Coding】pandasでデータフレームを結合(キー結合)

code python

こんにちは、TAKです。
今回はpyhtonのpandasを使って、データフレーム同士を結合する方法を紹介していきます。

前回、データフレーム同士を単純に結合する方法を紹介しましたが、今回はデータフレームに共通する「キー」を使って結合する方法となります。

「単純に結合する方法って何?」という方は、まずは以下の記事を参考にしてみてください。

本記事ではシンプルな具体例を用いて紹介していくので、ご自身のローカル環境でも確認しながら理解を深めてみてください。

ライブラリのインポート(共通)

今回使うライブラリのインポート

まず最初に、今回必要なライブラリのインポートをしておきます。
今回もpandasだけでOKです。

利用データの確認

今回も比較的シンプルなデータを使っていきたいと思います。
以下のようなテーブルデータを3つほど作るイメージです。

今回使う3つのデータフレーム

DataFrame1とDataFrame2はカラム名「ID」が共通しています。
DataFrame1とDataFrame3はカラム名「Name」が共通しています。
これらデータフレームの共通している箇所をキーとして、すべて結合させていくのが今回の目的です。

分かりやすくイメージで表すと以下のような感じですね。

データフレームの結合後イメージ。合計2回の結合を通じて、右下のデータフレームを完成させるのが目的。

利用データの作成

では上記イメージを前提として、データフレームを3つ作成していきます。
「そもそもpandasを使ったデータフレームの作成方法が今一つわからない」という方は、以下の記事を参考にしてみてください。

先ほどのイメージ図と合わせる形で作成したデータフレームが以下となります。

DataFrame1(df_name)の作成
DataFrame2(df_age)の作成
DataFrame3(df_info)の作成

以上でデータフレームの準備が完了しました。
ちなみに、「df_age」と「df_info」では、カラムをキレイに並び替えるための処理を最後に追加していますが、ここは気にしなくて大丈夫です。先ほどの図と出力結果を合わせるための調整と思ってください。

データフレームの結合

では今回のメインテーマであるデータフレームの結合を見ていきます。

今回のように、共通している「キー」を用いて結合するには`df.merge()`を使います。
そして、「キー」となっているカラム名を引数内で`on=”xxx”`として指定します。

ここで、pd.merge()ではなく、df.merge()となっている点に注意してください。
「ベースとしたいデータフレーム」に別のデータフレームを繋げていくイメージを持てればOKです。

言葉だけだとわかりにくいと思うので、先ほどの図のような手順でコーディングしていきましょう。
まずは「df_name」と「df_age」を結合させた結果が以下となります。

データフレーム同士のキー結合(1回目)|共通キーは「ID」

続いて、「df_merge1」と「df_info」を結合させた結果が以下です。

データフレーム同士のキー結合(2回目)|共通キーは「Name」

少しポイントを整理しておきます。

ポイント①】 df.merge()のdfには、結合元としたいデータフレームを指定する

【ポイント②】 共通キーとなっているカラム名を引数「on」で指定する

【ポイント③】 結合方法を「how」で指定する(内部結合はinner(デフォルト)|外部結合はleft)

以上が、データフレーム同士の「キー」を用いた結合方法となります。

さいごに

今回はpythonのpandasを使って、データフレーム同士を共通キーで結合する方法を紹介しました。

SQLのテーブル結合のような感覚で使えるので、データフレーム同士の統合を図りたい時には是非使ってみてください。

またね~