首页 > 解决方案 > 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

标签: pythonpandas

解决方案


您可以使用drop_duplicates

pd.concat([df1,df2]).drop_duplicates(keep=False)

推荐阅读