比较两个 Dataframe ,并使用Pandas隔离它们之间的相似数据行

wfypjpf4  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(134)

我有以下 Dataframe :

DF1

default_item_header   item_ser_num   from_date     to_date  tp_price
0                      2             10  2004-04-01  2004-04-16  15907.89
1                      2             20  2004-04-17  2004-05-02  15908.11
2                      2             30  2004-05-03  2004-05-18  15908.23
3                      2             40  2004-05-19  2004-06-03  15908.32
4                      2             50  2004-06-04  2004-06-19  15908.41
5                      2             60  2004-06-20  2004-07-05  15908.56
6                      2             70  2004-06-20  2004-07-05  15908.56
7                      2             80  2004-07-06  2004-07-21  15908.67

DF2

default_item_header   item_ser_num   from_date     to_date   tp_price
0                      2             80  2004-07-06  2004-07-21   15908.67
1                      2             90  2004-07-22  2004-08-06   15908.88

我想将行号80从***DF2***中分离出来,***DF2***也出现在***DF1***中。
我试过Pandas.compare的方法使用:

isolate_data = df1.compare(df2, keep_equal=True)

但出现了错误:
只能比较标签相同的DataFrame对象。
我想我错过了一些明显的东西(* 只是我不能发现它 *)。有什么帮助吗?

0lvr5msh

0lvr5msh1#

因此,我现在使用以下命令提取在比较的DF(df1)中不存在的行:

isolate_data = df2[~(df2['default_item_header'].isin(df1['default_item_header']) & df2['tp_price'].isin(df1['tp_price']))].reset_index(drop=True)

这样,我就可以只提取df2中没有出现在df1中的行。
参考这个answer,它帮助我实现了我正在努力做的事情。

相关问题