Python数据分析如何识别异常值_IQR四分位距检测法实战

应统一使用 numpy.quantile 计算 IQR 边界,因其默认线性插值、结果稳定且与 Pandas 一致;标准写法为 q1 = np.quantile(data, 0.25) 和 q3 = np.quantile(data, 0.75),避免混用 np.percentile。怎么用 numpy.quantile 算 IQR 边界才不翻车直接用 np.percentile 有时会因插值方式不同导致边界偏移,尤其在小样本或重复值多时。推荐统一用 np.quantile,它默认采用线性插值,结果更稳定,且与 Pandas 的 quantile() 行为一致。q1 = np.quantile(data, 0.25) 和 q3 = np.quantile(data, 0.75) 是标准写法,别混用 percentile(后者默认 method='linear' 但旧版本行为不一)数据长度 n 时,<code>quantile 仍会返回数值,但 Q1/Q3 估计极不可靠------此时 IQR 法本身失效,应跳过或加警告遇到全相同值(如 5,5,5,5),IQR=0,上下界重合,所有非该值都会被误标为异常;需提前检查 iqr == 0 并处理为什么 1.5 * IQR 是默认阈值,而不是 2 或 31.5 不是统计推导出来的"黄金常数",而是图基(Tukey)在大量实验中发现的平衡点:既足够敏感以捕获明显离群点,又不至于把尾部正常波动误判为异常。用 2 倍会漏检温和离群,用 3 倍基本只抓极端值(比如传感器彻底失灵),实际中极少用。业务场景决定倍数:金融风控可能用 1.2 提前预警,IoT 设备日志可放宽到 2.0 减少误报不要对所有字段硬套同一倍数------订单金额和用户停留时长的分布形态差异极大,需分列计算若数据明显右偏(如收入),可考虑对数变换后再算 IQR,比强行调高倍数更合理用 Pandas 处理 DataFrame 时,apply 和逐列循环哪个更安全用 df.apply(lambda x: detect_outliers_iqr(x)) 看似简洁,但一旦某列为非数值型(如字符串、时间戳),就会直接报错 TypeError: ufunc 'subtract' not supported...。不如显式遍历数值列,留出容错空间。先筛选数值列:num_cols = df.select_dtypes(include=np.number).columns对每列单独调用检测函数,捕获异常并记录列名,避免整表中断别依赖 dfcol.quantile(0.25) 自动跳过 NaN------它默认 skipna=True,但若整列全是 NaN,会返回 nan,后续计算 iqr 得 nan,边界变成 nan,布尔索引全失效画箱线图时 seaborn.boxplot 显示的异常点,和你代码算出的不一致?不是 bug,是绘图库做了额外处理:seaborn 默认用 whis=1.5,但会把须(whisker)末端限制在实际数据的最小/最大值内,而你的代码如果直接用公式算边界,可能得到理论值(比如下界=-12.3,但数据最小是 1),这时 seaborn 会把须拉到 1,而你的逻辑仍按 -12.3 判定------导致"图上没标异常,代码却标了"。 Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台,擅长于生成带有文本的图像,如LOGO上的字母、数字等。

相关推荐
烂蜻蜓9 分钟前
Flask入门教程(十二):表单处理——从基础到Flask-WTF完整实践
后端·python·flask
一只小bit15 分钟前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
jay神25 分钟前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
满怀冰雪1 小时前
24-PaddleClas 模型评估、导出与推理部署入门
大数据·人工智能·python·深度学习·paddle
DeepVisionary7 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
zlwool7 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
阡之尘埃7 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
海兰7 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
cvcode_study7 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
小灰灰搞电子8 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt