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

concat
こつこつPython
import pandas as pd

df01 = pd.DataFrame( {'name':['A', 'B', 'C', 'D','E'],
'class':['df01', 'df01', 'df01', 'df01','df01'],
'math':[60, 70, 80, 90, 100]})
df01
df02 = pd.DataFrame( {'name':['A', 'B', 'C', 'D'],
'class':['df02', 'df02', 'df02', 'df02'],
'english':[100, 90, 80, 70]})
df02
df03 = pd.DataFrame( {'name':['A', 'B', 'C'],
'class':['df03', 'df03', 'df03'],
'science':[100, 90, 80]})
df03

Pythonで縦方向・横方向に複数のデータフレームを結合する方法です。
使用するのは、PythonのPandasライブラリのconcatメソッドです。
このような2つのデータフレームを用意します。
pd.concatの引数にリストで2つのデータフレームを指定します。
実行します。
2つのデータフレームが縦方向に結合されました。

pd.concat([df01,df02])

横方向に結合するには引数axisを使用します。
pd.concatの引数にリストで2つのデータフレーム、axisの引数に1またはcolumnsを指定します。
実行します。
2つのデータフレームを横方向に結合できました。

次に、3つのデータフレームを結合してみましょう。
このような3つめのデータフレームを用意します。
pd.concatの引数にリストで3つのデータフレームを指定します。
実行します。
3つのデータフレームを結合できました。

pd.concat([df01,df02,df03],axis='columns')

最後にインデックス番号を1つのデータフレームとして振り直しましょう。
pd.concatの引数に3データフレームのリスト、ignore_indexの引数をTrueに指定します。
実行します。
インデックス番号を振り直すことができました。

横に結合できました。

pd.concat([df01,df02,df03],axis='columns',join='inner')

innerで結合できました。
connatではデフォルトでインデックス名をキーに結合されます。
カラム名をキーにしたい場合はset_indexメソッドを使って変更してからconcatを使用してください。

関連メソッド

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

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

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

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

キノクエスト