我有以下2个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
如何在熊猫中实现这一目标?任何帮助将不胜感激。
答案 0 :(得分:0)
首先删除列C
,然后删除DataFrame.merge
,仅保留左过滤连接的列-A
,B
列用于连接,并新增C
列,最后按原始df1
和DataFrame.reindex
对列重新排序:
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