首页 > 解决方案 > 在数据帧上正确合并不同长度的系列

问题描述

设置

我有一个df1

     A    B   name
0  ABC  DEF  test1
1  UVW  XYZ  test2

和一个df2

   C   name
0  1  test1

和一个df3

   C  D   name
0  1  1  test2

这样df12 = pd.merge(df1, df2, on=['name'])给出,

     A    B   name  C
0  ABC  DEF  test1  1

df13 = pd.merge(df1, df3, on=['name'])给出,

     A    B   name  C  D
0  UVW  XYZ  test2  1  1

问题

我如何随后添加第一个df2和第二个df3df1以便我获得一个df123看起来像,

     A    B   name  C  D
0  ABC  DEF  test1  1  NaN
1  UVW  XYZ  test2  1  1

我需要能够df123循环构建。

标签: pythonpandasdataframe

解决方案


使用appendmerge

df = df1.merge(df2.append(df3, sort=False),on='name')

print(df)
     A    B   name  C    D
0  ABC  DEF  test1  1  NaN
1  UVW  XYZ  test2  1  1.0

推荐阅读