使用Pandas比较两列中的值

时间:2019-11-22 14:34:58

标签: pandas compare

我的DataFrame中有37,000行。我需要比较两列中的值,以确定价格相同还是不同。我还需要打印出不同的内容。

所以基本上我的表由三列组成。名称,价格1和价格2。我需要知道哪些不相同。

在文档中似乎找不到任何内容。谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可能正在创建第三列,该列是布尔值,用于标识Price1Price2不同的情况:

df["is_diff"] = df["Price1"] != df["Price2"]

然后,如果您要查看两个价格不同的情况,则可以显示一个DataFrame,仅显示以下情况:

df[df["is_diff"] == True]

答案 1 :(得分:1)

numpy.isclose

由于价格很可能是浮动值,因此价格可能并不完全相同,但足够接近以至于您希望价格相同。您可以使用np.isclose来确定它们是否在公差范围内。

import numpy as np

mask = np.isclose(df['Price1'], df['Price2'])
df[~mask]

然后,默认绝对公差为1e-08,相对公差为1e-05See documentation

但是,如果您希望绝对公差在1e-06

之内,则可以更改它
mask = np.isclose(df['Price1'], df['Price2'], atol=1e-06)
df[~mask]