Python 在数据帧上正确合并不同长度的序列

Python 在数据帧上正确合并不同长度的序列,python,pandas,dataframe,Python,Pandas,Dataframe,设置 我有一个df1 A B name 0 ABC DEF test1 1 UVW XYZ test2 和adf2 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 A B name C D 0 UV

设置

我有一个
df1

     A    B   name
0  ABC  DEF  test1
1  UVW  XYZ  test2
和a
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
     A    B   name  C  D
0  UVW  XYZ  test2  1  1
df13=pd.merge(df1,df3,on=['name'])

     A    B   name  C
0  ABC  DEF  test1  1
     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

使用
追加
合并

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

使用
追加
合并

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

使用
先将_组合
设置_索引()


使用
先将_组合
设置_索引()


我认为df_final=reduce(lambda left,right:pd.merge(left,right,on='name'),dfs)应该工作我得到一个
名称错误:没有定义名称“reduce”
。使用functools导入reduce中的
我将重新打开它,因为它不是合并问题。@jezrael是的,这更像我认为的问题
df_final=reduce(lambda left,right:pd.merge(left,right,on='name'),dfs)
应该工作我得到一个
名称错误:未定义名称“reduce”
。请使用functools导入reduce中的
。@jezrael我将重新打开它,因为它不是合并问题。@jezrael是的,这一个更像此问题给出的
类型错误:append()获取了一个意外的关键字参数“sort”
@LucSpan remove
sort=False
它是pandas的最新版本>=0.23.0这给出了
TypeError:append()获取了一个意外的关键字参数“sort”
@LucSpan remove
sort=False
它是pandas的最新版本>=0.23.0