我有两个具有相同列但值不同的数据帧,其中有些是相同的,有些是不同的。我想比较两列并保留通用值。
df1
:
A B C
1 1 1
2 4 6
3 7 9
4 9 0
6 0 1
df2
:
A D E
1 5 7
5 6 9
2 3 5
7 6 8
3 7 0
这是我期望比较后得到的结果
df2
:
A D E
1 5 7
2 3 5
3 7 0
答案 0 :(得分:1)
您可以使用pd.Index.intersection()
查找匹配的列,最后进行内部合并reindex()
来保留df2.columns
:
match=df2.columns.intersection(df1.columns).tolist() #finds matching cols in both df
df2.merge(df1,on=match).reindex(df2.columns,axis=1) #merge and reindex to df2.columns
A D E
0 1 5 7
1 2 3 5
2 3 7 0