繁体   English   中英

根据其他值更新 dataframe。 它是具有新指标列的传统 UPSERT 任务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM