簡體   English   中英

根據條件使用另一個數據幀列值更新一個數據幀值

[英]Update one dataframe value with another dataframe column value based on the condition

我有兩個數據幀說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

我想根據idcodedf2備注值更新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM