我已经在 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
