pandas結合


結合方法

  • concat結合
    • シンプルな結合
  • merge結合
    • 内部結合
    • 外部結合
    • 左結合
    • 右結合

使うdf

import pandas as pd

df1 = pd.DataFrame({
    "ID" : [1,2,3],
    "Country" : ["鈴木","中村","小島"],
})


df2 = pd.DataFrame({
    "ID" : [2,3,4],
    "Address" : ["Hikone","Tokyo","Nagoya"],
})

concat結合

シンプルに右にくっつくか、下にくっつくか。

右にくっつく

concat_df = pd.concat([df1, df2], axis=1)

下にくっつく

concat_df = pd.concat([df1, df2], axis=0)

merge結合

キー(ID)に紐づいて結合する。

内部結合

2つのdfのキーが一致するデータのみ抽出

inner_df = pd.merge(df1, df2, on="ID", how="inner")

外部結合

2つのdfのキーに紐づくデータを全て抽出

outer_df = pd.merge(df1, df2, on="ID", how="outer")

左結合

(引数で)左指定のdfのキーに一致するデータを抽出

left_df = pd.merge(df1, df2, on="ID", how="left")

右結合

(引数で)右指定のdfのキーに一致するデータを抽出

right_df = pd.merge(df1, df2, on="ID", how="right")

漏れなくデータを結合したいのか、どこに欠損を出したくないのか、で使い分ける感じですかね。