![](/img/trans.png)
[英]Setting value of columns in one dataframe to another dataframe column based on condition
[英]Update one dataframe value with another dataframe column value based on the condition
我有兩個數據幀說df1
和df2
。
df1:
id code remarks
1 a12
2 b32
3 c12
df2:
id code remarks
1 aaa12 ok
2 b32 done
3 ccc12 not ok
我想根據id
和code
用df2
備注值更新df1
備注值。
這里第二個值匹配( id-2 , code-b32
),所以用df1
remarks列更新備注'done'的值。
df1
最終結果如下所示,
df1:
id code remarks
1 a12
2 b32 done
3 c12
到目前為止,我嘗試如下,我知道這是不正確的,但我需要這樣的東西
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'])
根據這個,我也嘗試了以下,但沒有為我工作。
df3 = df1.merge(df2[['remarks']], on=['id','code'], how='left')
按列表使用DataFrame.merge
和篩選的列:
df3 = df1[['id','code']].merge(df2, on=['id','code'], how='left')
或者通過DataFrame.drop
:
df3 = df1.drop('remarks', axis=1).merge(df2, on=['id','code'], how='left')
print (df3)
id code remarks
0 1 a12 NaN
1 2 b32 done
2 3 c12 NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.