问题描述
假设我有两个大表(每个 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