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

join
こつこつ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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト