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

使用中位数替换avg_glucose_level异常值失败的技术问询

解决异常值替换中位数失效的问题

你的代码仅处理了大于上界的异常值,遗漏了小于下界的部分;同时如果data是Pandas数据框,直接赋值可能因链式索引导致修改未真正生效,以下是修正方案:

问题分析

  • 原代码仅通过np.where处理data["avg_glucose_level"] > upper的情况,完全没覆盖data["avg_glucose_level"] < lower的异常值
  • 若data为Pandas DataFrame,直接赋值data["avg_glucose_level"]可能存在链式索引问题,导致修改未写入原数据

修正后的代码

# 绘制原始箱线图(可选)
data.boxplot("avg_glucose_level")

# 计算四分位数与IQR
q1 = np.percentile(data["avg_glucose_level"], 25)
q2 = np.percentile(data["avg_glucose_level"], 50)
q3 = np.percentile(data["avg_glucose_level"], 75)    
iqr = q3 - q1

# 计算上下界
upper = q3 + 1.5 * iqr
lower = q1 - 1.5 * iqr

# 同时处理上下界异常值,用.loc确保修改生效
data.loc[:, "avg_glucose_level"] = np.where(
    (data["avg_glucose_level"] > upper) | (data["avg_glucose_level"] < lower),
    q2,
    data["avg_glucose_level"]
)

# 绘制处理后的箱线图
data.boxplot(column="avg_glucose_level")

关键修改点

  • 用逻辑或|同时判断大于上界和小于下界的异常值
  • 使用data.loc[:, "avg_glucose_level"]赋值,规避Pandas链式索引引发的修改不生效问题
  • 保留原有的四分位数计算逻辑,确保异常值判断标准一致

内容的提问来源于stack exchange,提问作者Jahnavi Ravi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:55:19