根据条件,用另一个数据框列值更新一个数据框值

时间:2019-05-29 07:32:08

标签: python pandas dataframe

我有两个数据帧,分别为df1df2

df1:

id code remarks
1   a12  
2   b32  
3   c12

df2:

id code remarks
1   aaa12  ok
2   b32    done
3   ccc12  not ok

我想使用基于df1df2的{​​{1}}注释值更新id注释值。

这里第二个值匹配(code),因此用id-2 , code-b32备注列更新备注'done'的值。

df1的最终结果如下所示,

df1

到目前为止,我尝试如下所示,我知道这是不正确的,但是我需要这样的东西

df1:

id code remarks
1   a12  
2   b32  done
3   c12

根据this,我也尝试了以下方法,但对我没有用。

df1_key = df1['id'].astype(str) + df1['code'].astype(str)
df2_key = df2['id'].astype(str) + df2['code'].astype(str)

df['flag'] = df1_key.isin(df2_key, df1['remarks']=df2['remarks'])

1 个答案:

答案 0 :(得分:0)

DataFrame.merge与按列表过滤的列一起使用:

ToolStripButton

或通过DataFrame.drop

{
  "name": "test",
  "version": "1.0.0",
  "description": "test",
  "author": "test",
  "license": "ISC",
  "dependencies": {
    "del": "^3.0.0",
    "i": "^0.3.6"
  },
  "devDependencies": {
    "parcel-bundler": "^1.12.3"
  },
  "scripts": {
    "start": "parcel src/pages/index.html"
  }
}