You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas异常值检测得到负下限,求助问题原因

IQR异常值检测下限为负的原因及处理

你的操作没有出错,出现负的下限是IQR方法针对当前房价数据分布的正常结果,原因和处理方式如下:

  • IQR的下限计算公式为Q1 - 1.5*IQR,当数据的下四分位数(Q1)本身较小,同时四分位距(IQR)较大时,就会得到负数结果。结合你给出的房价数据最小值2500来看,实际数据中没有低于这个负下限的数值,说明只有高于上限649000的房价(比如最大值950000)属于潜在异常值。
  • IQR是纯统计计算方法,不会考虑数据的实际业务逻辑(比如房价不可能为负)。如果要贴合业务场景,你可以手动将下限调整为数据的实际最小值,避免出现不合理的负数值范围。

调整后的参考代码:

def outliers(df, feature):
    Q1= df[feature].quantile(0.25)
    Q3 = df[feature].quantile(0.75)
    IQR = Q3 - Q1
    upper_limit = Q3 + 1.5 * IQR
    # 手动修正下限为数据最小值,避免负数
    lower_limit = max(Q1 - 1.5 * IQR, df[feature].min())
    return upper_limit, lower_limit

upper, lower = outliers(data, "price")
print("Upper whisker: ", upper)
print("Lower Whisker: ", lower)

内容的提问来源于stack exchange,提问作者Luis Valencia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:15:34