首页 > 解决方案 > 如果值基于一列值出现在另一个数据框中,则更改一个数据框中的值

问题描述

我有两个数据框,“大”和“更正”:

大的:

>>>ID    class    fruit
0  1     medium   banana
1  2     medium   banana
2  3     high     peach
3  4     low      nuts
4  5     low      banana

和更正:

>>> ID  class  time  fruit
0   2  medium   17   melon
1   5  high     19   oranges

我想根据表格更正中的信息来修复表格“大”。为了得到下表:

>>>ID    class    fruit
0  1     medium   banana
1  2     medium   **melon**
2  3     high     peach
3  4     low      nuts
4  5     **high** **oranges**

如您所见,在 ID 字段上,根据更正表“固定”的星号值。

我想使用嵌套循环,但我相信有更好的方法来获得相同的结果。

标签: pythonpandas

解决方案


df.update对齐两个数据帧的索引后尝试:

big.set_index("ID",inplace=True)
big.update(correction.set_index("ID")

big = big.reset_index() #ifyou want `ID` as a column back
print(big)

   ID   class    fruit
0   1  medium   banana
1   2  medium    melon
2   3    high    peach
3   4     low     nuts
4   5    high  oranges

推荐阅读