NumpyPandas移除异常值

2024-03-29 11:39:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个函数,它将解析一个值数组,然后更新数组,而不更新那些由于超出四分位数范围而被确定为异常值的值。虽然我觉得我已经具备的条件将测试并输出正确的答案,但我不确定我应该如何将一列值传递到数据帧中,以删除与异常值匹配的行。目前我的数据返回时出现了一个类型错误。在

错误:TypeError: tuple indices must be integers, not str

功能:

def reject_outliers_iqr(data):
    q1, q3 = np.percentile(data, [25, 75])
    iqr = q3 - q1

    lower_bound = q1 - (iqr * 1.5)
    upper_bound = q3 + (iqr * 1.5)
    return np.where((data > upper_bound) > (data < lower_bound))

数据帧:

^{pr2}$

Tags: 数据函数答案data错误np数组条件
1条回答
网友
1楼 · 发布于 2024-03-29 11:39:57

在我看来,函数的最后一行至少包含三个错误,而且应该是

return np.where((data > lower_bound) & (data < upper_bound))
  1. 数据应高于下限,且低于高于上限。

  2. 逻辑连词是&,而不是{}。

一旦更正,我就可以运行它了,如(使用您的数据):

^{pr2}$

相关问题 更多 >