首页 > 解决方案 > 根据条件用另一个数据帧的值替换一个数据帧的值

问题描述

我有一个看起来像的 df

floor id p1 p2 p3
L1     1  5  6  7
L1     2  5  8  3
L2     1  4  2  1
L2     2  4  5  4

和 df2

floor id p1 p2 p4
L1     1  6  6  5
L1     2  9  8  5 
L2     1  5  5  5
L2     2  4  5  5

如何用 df2 中的相应值替换特定楼层和 id 的 df 中 p1 和 p2 的值?

标签: pythonpandasnumpy

解决方案


我们也可以使用DataFrame.merge

df1 = (df1[df1.columns.difference(['p1','p2'])].merge(df2,
                                                      on =['floor','id'],
                                                      how ='left')
                                               .fillna(df1)[df1.columns])
print(df1)
  floor  id  p1  p2  p3
0    L1   1   6   6   7
1    L1   2   9   8   3
2    L2   1   5   5   1
3    L2   2   4   5   4

推荐阅读