当前位置: 首页 > 知识库问答 >
问题:

如何比较两列之间的值是否具有大致相同的数字

酆乐湛
2023-03-14

我有一个df,我试图比较两个列,如果它们在同一行中有大约相同的值,我希望它从df中删除。即。:

   A       B  
1  3.21   3.15
2  6.98   2.07
3  5.41   8.95
4  0.32   0.30

我只希望df中保留第2/3行,因为第1/4行中的A和B彼此相似。

我曾经尝试过这样做,如果A列中的I在某个范围内(/-15%的行B的值),则删除该行,但没有成功。我不知道熊猫是否有某种内在的功能。

共有2个答案

鲁熙云
2023-03-14

您可以定义允许值的上下限

lower = df["A"]*0.85
upper = df["A"]*1.15

然后使用pandas.Series.between

df[~df["B"].between(lower, upper)]
单耘豪
2023-03-14

您可以通过将rtol参数传递给numpy.isclose来实现这一点:

result = df[~np.isclose(df.A, df.B, atol=0, rtol=0.15)]
#       A     B
# 2  6.98  2.07
# 3  5.41  8.95
 类似资料:
  • 问题内容: 如果我想找出两个键中是否没有一个键与另一个键不同,并且该键的值彼此匹配,如何最好地比较两个键。 将A与B进行比较时,由于B和D键的不同,它应该会失败。 如何最好地比较未排序的哈希图? 问题答案: 做一个支票上两者秒。 注意: 如果您包含键,那没有问题,但是如果您的Map包含类型键,则需要确保您的类实现了。

  • 问题内容: 我有两个数组:一个数组填充了来自ajax请求的信息,另一个数组存储了用户单击的按钮。我使用以下代码(我填写了示例编号): 但是,即使两个数组相同,但名称不同,它总是给出。(我在Chrome的JS控制台中对此进行了检查)。那么,有什么办法可以知道这两个数组是否包含相同的数组?为什么给?我怎么知道第一个数组中的哪个值不在第二个数组中? 问题答案: 请注意,这不会像以前的答案那样修改原始数组

  • 我想知道循环浏览两个csv文件并比较它们的列最合适的方式是什么。具体来说,我想将csv文件1第1列与csv文件2第20列的每一次迭代进行比较,并检查是否存在匹配。以下是我到目前为止的情况。此外,csv文件1比csv文件2小得多。

  • 我想比较这两个函数的值。不幸的是,我试图使,但我一直得到。 我想检查如果。这就是我上面完整的代码。

  • 我试图建立一个函数,检查一个单词或文本是否是回文。要做到这一点,它拆分文本,使每个字母都是一个新数组的元素,它去掉空白,并建立反向数组。然后检查两个数组中处于相同位置的每个元素是否相等。如果不是,则返回false,如果是,则返回true。这里的函数是: 我不知道出了什么问题,但是不管我传递给函数什么单词或文本,函数似乎都在返回一个真值。那有什么不好?

  • 这个问题与语言无关,但代码是用Java编写的。 我们都听说过,比较浮点数是否相等通常是错误的。但是,如果我想比较两个完全相同的文字浮点值(或表示转换为浮点数的完全相同的文字值的字符串),该怎么办? 我很确定这些数字是完全相等的(好吧,因为它们在二进制中必须相等——完全相同的东西怎么会产生两个不同的二进制数?!)但我想确定一下。 案例1: 案例2: 在这两种情况下,表达式应导致。我说得对吗?如果它们