【问题标题】:Compare values in two columns with Pandas用 Pandas 比较两列中的值
【发布时间】:2019-11-22 14:34:58
【问题描述】:

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

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

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

【问题讨论】:

  • 添加一个例子,展示你有什么,最后你希望看到什么。
  • df[df['Price1'] != df['Price2']]?

标签: pandas compare


【解决方案1】:

您可以创建第三个布尔列,用于标识Price1Price2 不同的情况:

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

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

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

【讨论】:

  • "is_diff" 已经包含True/False 所以df[df["is_diff"]] 就足够了。
  • 谢谢,这正是我所需要的!非常感谢!
【解决方案2】:

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]

【讨论】:

    猜你喜欢
    • 2023-01-30
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多