Skip to main content
 首页 » 编程设计

python之从 1 个 Dataframe 更新一列,其中其他 Dataframe 具有相同的键

2025年05月04日9jiqing9006

我有一个这样的数据框,

Key Group RS 
42 23 100 
42 41 21 
46 23 89 
67 10 65 

其他dataframe是这样的,

Key Group RS 
42 41 11 
67 10 23 

有层次结构:Key -> Group(在key内唯一) -> RS。

如果键和组与第二个数据帧相同,我想替换第一个数据帧中的 RS 值。 所以结果应该是这样的,

Key Group RS 
42 23 100 
42 41 11 // updated 
46 23 89 
67 10 23 // updated 

我想使用 pandas .update 函数,但它不适用于非唯一索引,Key 就是这种情况,因为它在多行中重复。我不知道该怎么办。

请您参考如下方法:

设置索引并使用 loc 分配更新的值。然后重置索引。
请注意,此方法保留了 'RS' 列的 dtype。

d1 = df1.set_index(cols).RS 
d2 = df2.set_index(cols).RS 
d1.loc[d2.index] = d2 
d1.reset_index() 
 
   Key  Group   RS 
0   42     23  100 
1   42     41   11 
2   46     23   89 
3   67     10   23