Pandas でデータフレームの結合 (マージ, JOIN)

Last update: 2016-05-06

このページでは、Pandas で作成したデータフレーム同士を結合する方法について紹介します。

2 つのデータフレームを結合する

以下の例では、merge() メソッドを用いて、2 つのデータフレームを作成し、内部結合 (inner join) を行います。

Merge メソッドの使い方

引数

left データフレーム (DataFrame) オブジェクト。
right もう一つのデータフレーム (DataFrame) オブジェクト。
on 結合に用いる行の名前。left と right のデータフレーム両方に存在する必要があります。値が設定されていなく、かつ left_index と right_index も設定されていない場合は、結合に用いるキーを推測により選択します。
left_on left のデータフレームでキーとして用いる列名、または配列。
right_on right のデータフレームでキーとして用いる列名、または配列を選択。
left_index True を設定すると、left のデータフレームの行ラベルを結合のキーとして用います。MultiIndex (階層的なインデックス構造) を持つデータフレームの場合、階層数を left と right で合わせる必要があります。
right_index left_index と同じです。
how ‘left’, ‘right’, ‘outer’, ‘inner’ のいずれかを設定。 (デフォルトは “inner”)
sort True を設定すると、結合後のデータフレームをソートします。(デフォルトは True)
suffixes 同一のカラム名が存在した場合に、後ろに文字列を追加して区別します。 (デフォルトは ‘_x’, ‘_y’)
copy 常に与えられたデータフレームをコピーします。場合によっては、False に設定すると、パフォーマンスやメモリの使用量を向上できる場合があります。 (デフォルトは True)
indicator _merge という名前のカラムを出力後のデータフレームに追加し、結合前の行に関する情報を格納します。

結合に用いるキーが異なる場合は、left_on, right_on 引数で指定します。

外部結合 (Left join, outer join) を行う際は how 引数にてそれぞれ指定します。


2 つのデータフレームを結合する (concat)

2 つのデータフレームを縦方向に結合するには、pd.concat メソッドを用いて行えます。


参考: Merge, join, and concatenate — pandas 0.18.0 documentation

See also