连接具有重叠的两个数据帧,而不指定重叠列,但覆盖其中一个(在python中)

连接具有重叠的两个数据帧,而不指定重叠列,但覆盖其中一个(在python中),python,dataframe,merge,Python,Dataframe,Merge,我正在努力解决以下问题: 我有两个数据帧: df1 和df2具有相同的列名,但列数不如df1: A B 1 1 8 2 1 5 6 3 df1和df2的行数始终相同,只有df2的列数小于或等于df1。此外,列名相同,但列中的值不同(它们可以相同,但绝对不总是如此) 现在,我想创建一个新的数据帧,其中df1和df2(a列和B列,而不是C列)之间的重叠列由df2确定,但其形状与df1相同(因

我正在努力解决以下问题:

我有两个数据帧: df1

和df2具有相同的列名,但列数不如df1:

 A      B      
 1      1      
 8      2      
 1      5      
 6      3
df1和df2的行数始终相同,只有df2的列数小于或等于df1。此外,列名相同,但列中的值不同(它们可以相同,但绝对不总是如此)

现在,我想创建一个新的数据帧,其中df1和df2(a列和B列,而不是C列)之间的重叠列由df2确定,但其形状与df1相同(因此df1在列的数量上占主导地位,但df2在从重叠列中获取的值上占主导地位)。需要知道的重要一点是,我不想指定哪些列是重叠的

因此,结果应给出:

df3:


这是可能的,特别是在不预先指定重叠列的情况下。有人能想出一个聪明的解决办法吗?因为合并和联接的所有可能变体似乎都不可能实现这一点。

只要df1中没有df2中的列标签,就可以使用

df3 = df1.copy()
df3.loc[:,df2.columns] = df2
 A      B      C
 1      1      8
 8      2      2
 1      5      1
 6      3      6
df3 = df1.copy()
df3.loc[:,df2.columns] = df2