Pythonのデータ分析ライブラリであるPandasでは、データフレームの結合を行うためのいくつかの方法が提供されています。主にconcat
、merge
、join
の3つの関数があります。
concat
concat
は、単にデータフレームをくっつける操作を行います。縦方向、横方向のどちらにも結合可能ですが、その結果細かい結合ができない場合があります。
import pandas as pd
df1 = pd.DataFrame({"Name": ["田中", "鈴木", "柴田"], "Group": ["A", "A", "B"], "Point": [1, 2, 2]}).set_index("Name")
df2 = pd.DataFrame({"Name": ["松井", "広末"], "Group": ["A", "C"], "Point": [0, 3]}).set_index("Name")
# 縦方向結合
pd.concat([df1, df2])
merge
merge
は、「データ」を軸に横に結合します。何を軸に結合するかを意識しつつ利用します。
df1 = pd.DataFrame({"Shop":["A", "A", "B", "C"], "Item":["りんご", "みかん", "ぶどう", "りんご"]})
df2 = pd.DataFrame({"Item":["りんご", "みかん", "ぶどう"], "price":[150, 300, 500]})
# mergeによる結合
df1.merge(df2)
join
join
は、「インデックス」を軸に横に結合します。結合軸がインデックスで固定のため、複数をまとめ結合できます。
df1 = pd.DataFrame({"Name": ["田中", "鈴木", "柴田"], "Group": ["A", "A", "B"], "Point": [1, 2, 2]}).set_index("Name")
df3 = pd.DataFrame({"Name": ["田中", "鈴木", "柴田"], "Address": ["東京", "大阪", "北海道"]}).set_index("Name")
# joinによる結合
df1.join(df3)
これらの関数を適切に使い分けることで、PythonとPandasを使ったデータ分析がより効率的になります。.