Python:如何仅基于不同的列合并两个数据框?

时间:2019-05-07 10:54:43

标签: python pandas

我有两个数据帧df1df2

df1
     A  B
0    4  2
1    3  3
2    1  2

df2
     B  AB C
0    4  8  3
1    3  9  2
2    1  2  4

我只想在不同的列上加入连接

df3
     A  B  AB  C
0    4  2  8   3
1    3  3  9   2
2    1  2  2   4

2 个答案:

答案 0 :(得分:2)

Index.isin与反掩码或Index.difference一起使用:

df22 = df2.loc[:, ~df2.columns.isin(df1.columns)]
df = df1.join(df22)

或者:

df22 = df2[df2.columns.difference(df1.columns)]
df = df1.join(df22)

print (df)
   A  B  AB  C
0  4  2   8  3
1  3  3   9  2
2  1  2   2  4

答案 1 :(得分:0)

您还可以将合并功能用作替代解决方案:

df3=pd.merge(df1,df2, left_on='A', right_on='B', how ='left', suffixes=('','_')).drop('B_',axis=1)