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つのデータフレームを結合できました。