我试图创建一个函数,它将解析一个值数组,然后更新数组,而不更新那些由于超出四分位数范围而被确定为异常值的值。虽然我觉得我已经具备的条件将测试并输出正确的答案,但我不确定我应该如何将一列值传递到数据帧中,以删除与异常值匹配的行。目前我的数据返回时出现了一个类型错误。在
错误: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}$
在我看来,函数的最后一行至少包含三个错误,而且应该是
数据应高于下限,且低于高于上限。
逻辑连词是}。
&
,而不是{一旦更正,我就可以运行它了,如(使用您的数据):
^{pr2}$相关问题 更多 >
编程相关推荐