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を使用してください。