python - Pandas - 比较两个 Dataframe 并发现差异
问题描述
我有两个数据框,其中包含一些销售数据,如下所示:
df1:
prod_id,sale_date,new
101,2019-01-01,101_2019-01-01
101,2019-01-02,101_2019-01-02
101,2019-01-03,101_2019-01-03
101,2019-01-04,101_2019-01-04
df2:
prod_id,sale_date
101,2019-01-01,101_2019-01-01
101,2019-01-04,101_2019-01-04
我正在尝试比较上述两个数据框以查找 df2 与 df1 相比缺少的日期
我试图做以下事情:
final_1 = df1.merge(df2, on='new', how='outer')
这将返回以下数据框:
prod_id_x,sale_date_x,new,prod_id_y,sale_date_y
101,2019-01-01,101_2019-01-01,,
101,2019-01-02,101_2019-01-01,,
101,2019-01-03,101_2019-01-01,,
101,2019-01-04,101_2019-01-01,,
,,101_2019-01-01,101,2019-01-01
,,101_2019-01-04,101,2019-01-04
这不是让我比较这两个 Dataframe。
预期输出:
prod_id_x,sale_date_x,new
101,2019-01-02,101_2019-01-02
101,2019-01-03,101_2019-01-03
解决方案
您可以使用drop_duplicates
pd.concat([df1,df2]).drop_duplicates(keep=False)