正确合并一系列长度不同的数据框

时间:2018-11-14 14:43:36

标签: python pandas dataframe

设置

我有一个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和之后的df3添加到df1,以便获得一个看起来像这样的df123

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

我需要能够循环构造df123

2 个答案:

答案 0 :(得分:1)

使用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

答案 1 :(得分:1)

set_index()df1=df1.set_index('name') df1.combine_first(df2.set_index('name')).combine_first(df3.set_index('name')) Out[144]: A B C D name test1 ABC DEF 1.0 NaN test2 UVW XYZ 1.0 1.0 一起使用

findviewById()