如何比较两个大表在 Python 中获取不匹配数据?

问题描述

假设我有两个大表(每个 1,000,000 行)有多个键(假设 id 和 name 作为键)

表A

id 名称 价格
1 苹果 1.00
2 苹果 2.00
3 橙色 1.00
4 橙色 2.00
5 香蕉 3.00

表 B

id 名称 价格
1 苹果 1.00
2 苹果 3.00
3 橙色 1.00
4 橙色 4.00
5 香蕉 3.00

并且我希望结果返回表 A 中价格不匹配的值

表 B

结果表:

id 名称 价格
2 苹果 2.00
4 橙色 2.00

如何在不忍受 Python 长时间处理的情况下获得上述结果?

解决方法

试试:

result = df1.loc[(df1 != df2).any(1)]

输出:

   id    Name  Price
1   2   Apple    2.0
3   4  Orange    2.0