我有以下两个dfs。我想把df2的C列复制到df1的C列,其中df1的A和B列与df2的A和B.列匹配。
df1
A B C F G ...
1 12 NaN 52 50
2 14 NaN 62 60
3 15 NaN 72 70
2 14 NaN 82 80
df2
A B C D E ...
2 14 0 abc xyz
3 15 1 efg pqr
1 12 1 hij stu
现在我希望我的df1看起来像:
df1
A B C F G ...
1 12 1 52 50
2 14 0 62 60
3 15 1 72 70
2 14 0 82 80
我怎样才能在熊猫身上做到这一点?如有任何帮助,我们将不胜感激。
首先删除列C
,然后删除带有左联接的DataFrame.merge
,只删除经过筛选的列-A
、B
列用于联接,C
是新添加的列,最后按带有DataFrame.reindex
:的原始df1
重新排序列
df = (df1.drop('C', 1)
.merge(df2[['A','B', 'C']], on=['A','B'], how='left')
.reindex(columns=df1.columns))
print (df)
A B C F G
0 1 12 1 52 50
1 2 14 0 62 60
2 3 15 1 72 70
3 2 14 0 82 80