【毎日Python】Pythonで横方向に複数のデータフレームを結合する方法|DataFrame.join

join
毎日Python/こつこつPython
import pandas as pd

df01 = pd.DataFrame( {'A':['a', 'b', 'c'],
                      'B':[0, 1, 2],
                      'C':[False, True, True]},
                      index=['idx01','idx02','idx03'])
df01
df02 = pd.DataFrame( {'D':['Male', 'Female', 'Male'],
                      'E':['Tokyo', 'Osaka', 'Fukuoka'],
                      'F':[60, 70, 80]},
                      index=['idx01','idx02','idx04'])
df02
test = df01.join(df02)
test

Pythonで横方向に複数のデータフレームを結合する方法です。
使用するのは、PythonのPandasライブラリのjoinメソッドです。
まず、このような2つのデータフレームを用意します。
Pandasでは、2つのデータフレームを左のデータフレーム、右のデータフレームとして考えます。
今回はdf01を左のデータフレーム、df02を右のデータフレームとします。
変数testに、左のデータフレーム.join、引数に右のデータフレームを指定します。
joinメソッドは、mergeメソッドやconcatメソッドのようにpandas.メソッドという形ではなく、pd.DataFrame.メソッドという形になります。
実行します。
二つのデータフレームを横方向に結合できました。
片方のデータフレームにしかないデータはNaNと表示されます。
なお、右のデータフレームにあったidx04が表示されていません。
これは、joinメソッドのデフォルトの結合方法がleftであるためです。

test = df01.join(df02,how='outer')
test

全てのデータを結合させるには、howの引数にouterを指定します。
変数test2に、左のデータフレーム.joinの引数に右のデータフレーム、howの引数にouterを指定します。
実行します。
idx04も結合できました。

df03 = pd.DataFrame({'G':[11, 22, 33],
                     'H':[44,55,66],                    
                     'I':[77, 88, 99]},
                     index=['idx01','idx02','idx03'])
df03
test = df01.join([df02,df03])
test

最後に3つのデータフレームを結合してみましょう。
このような3つ目のデータフレームを使用します。
変数testに、左のデータフレーム.joinの引数に、右の二つのデータフレームをリストで指定します。
実行します。
3つのデータフレームを結合できました。

関連メソッド

【毎日Python】Pythonで複数のデータフレームを縦方向・横方向に複数結合する方法|pandas.concat

【毎日Python】Pythonでカラムをキーにデータフレームを結合する方法|pandas.merge