![](/img/trans.png)
[英]How to compare two Dataframe and update a particular column in one of the Dataframe?
[英]Compare two dataframe and update a column in first dataframe
我有兩個數據框: df1
和df2
。 df1
有列id
和name
。 df2
有id
和firstname
。 我想比較所有id
一的df1
與id
存在於df2
和比賽中,要更新/覆蓋firstname
由的值列name
列df1
。
我試過的代碼是:
df1.loc[df1.id.isin(df2.id),[name]]= df2[[firstname]].values
您可以定義系列映射,然后使用pd.Series.map
:
id_name_map = df2.set_index('id')['firstname']
df1['name'] = df1['id'].map(id_name_map).fillna(df1['name'])
或者,如果您需要以相反的方式執行此操作:
id_name_map = df1.set_index('id')['name']
df2['firstname'] = df2['id'].map(id_name_map).fillna(df2['firstname'])
在每種情況下,我們都使用fillna
來確保不匹配的id
不會導致名稱被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.