Skip to main content
 首页 » 编程设计

python之根据第二个 df 替换 python pandas 列中的值

2025年05月04日22sharpest

我已经在 stackoverflow 上解决了所有类似的问题,但解决方案仍然不适合我。

我有两个dfs:

df1: 
User_ID |    Code_1 
123           htrh 
345           NaN 
567           cewr 
... 
 
df2: 
User_ID |    Code_2 
123           ert 
345           nad 

我想根据 User_ID 将 df1.Code_1 替换为 df2.Code_2。请注意 df2 是 df1 的 user_ids 的子集。

我试过了

df1['Code_1'] = df1['User_ID'].replace(df2.set_index('User_ID')['Code_2']) 

我试过了

df1.loc[df1.User_ID.isin(df2.User_ID), ['Code_1']] = df2[['Code_2']] 

两者都不起作用。没有任何改变。

预期输出:

df1: 
    User_ID |    Code_1 
    123           ert 
    345           nad 
    567           cewr 
    ... 

谢谢

请您参考如下方法:

使用DataFrame.update。在调用函数之前,id 列 (User_ID) 和代码列 (Code_1, Code_2) 应该在数据帧中具有相同的名称。

df2.columns = ['User_ID', 'Code_1'] 
df1.update(df2) 

这对你的情况应该足够了。对于其他用途,请咨询 documentation