![](/img/trans.png)
[英]MultiIndex DataFrame: How to create a new column based on values in other column?
[英]Update a dataframe based on values from other. It is a traditional UPSERT task with a new indicator column
我正在尝试对两个数据帧执行 UPSERT 任务。
这里我用 df1 更新 df2。
我用过这样的东西:
final_df=df1.set_index('EmpID').combine_first(df2.set_index('EmpID'))
final_df.reset_index()
我的结果是:
EmpID Name Salary Status
0 A John 1000.0 Left
1 B Mary 2000.0 Working
2 C Samie 3000.0 Left
3 D Doe 4000.0 NaN
4 E Lance 2500.0 Contractor
我也无法添加“指标”列
我这样做了,几乎达到了我的目标,但是有没有更好的方法呢? 加上如何处理列插入?
df=pd.concat([df1, df2[~df2.EmpID.isin(df1.EmpID)]])
df=df.set_index('EmpID').join(df2.set_index('EmpID'),how='outer',rsuffix='_R')
df[['Name','Salary','Status_R']].reset_index()
EmpID Name Salary Status_R
0 A John 1000.0 Left
1 B Mary 2000.0 Working
2 C Samie NaN Left
3 D Doe 4000.0 NaN
4 E Lance 2500.0 Contractor
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.