pandas:データフレームを【マージ】する方法


前提

サンプルコード

2つのデータフレームをマージする

データ作成

import pandas as pd
df1 = pd.DataFrame({'name':['aaa','bbb','ccc','ddd'], 'key':['x','y','x','z']})
df2 = pd.DataFrame({'key':['x','y','z'], 'value':[100,200,300]})
print(df1)
print(df2)
  name key
0  aaa   x
1  bbb   y
2  ccc   x
3  ddd   z
  key  value
0   x    100
1   y    200
2   z    300
  • df1
    • 「key」列には(x,y,z)の3種類のデータが入っている
    • 4行
  • df2
    • 「key」の(x,y,z)には、それぞれ(100,200,300)の値が関連づけられている
    • 3行(df1とは異なる行数)

マージ実行(結合キー:「key」列)

df = pd.merge(df1, df2, on='key')
print(df)
  name key  value
0  aaa   x    100
1  ccc   x    100
2  bbb   y    200
3  ddd   z    300
  • 「key」列でdf1とdf2を結合
  • 行数はdf1の行数の4行になった
    • 左にあるdf1がメインのデータフレーム
    • そこにdf2の「value」列が追加になったイメージ


Posted by futa