当前位置: 首页 > news >正文

【干货】数据清洗全攻略:处理缺失值、异常值的7种方法

如果你问一个数据分析师,工作中最耗时、最头疼的部分是什么?答案大概率不是建模,不是调参,而是数据清洗。

这不是夸张。在真实的业务场景里,我们花在清洗数据上的时间,往往占到整个项目周期的60%到80%。这是因为原始数据从来不会乖乖躺好等着你用。缺失值、异常值、重复数据、格式混乱,这些问题不解决,后面的分析和建模也没办法进行。

而所有这些问题里,缺失值和异常值又是最难缠的两个。处理不好,模型精度掉得莫名其妙,业务报表给出错误结论,甚至导致决策方向跑偏。

这篇文章,我想和你聊聊处理这两个问题的7个实用方法。不是教科书式的搬运,而是我自己在项目里反复用过、踩过坑、最后沉淀下来的实战经验。

一、先区分问题数据类型

拿到一份脏数据,别急着上手处理。先问自己:这些问题数据,到底属于哪一类?

缺失值相对好理解,就是该有的数据没了。表格里空着,或者显示为NaN、None,甚至有人用“-”、“/”这种占位符糊弄过去。原因很多,比如用户没填、采集系统故障、传输过程中丢包等。

异常值就复杂一些。它指的是明显偏离正常范围的数据点。但这里面有个关键区别:

真实的异常:本身就是业务的一部分。比如电商大促时的百万级订单,金融领域的超高净值交易。这些数据虽然异常,但背后有真实的业务逻辑,不能简单删除。

错误的异常:纯粹是录入错误或系统故障。比如年龄填了200岁,销售额是负数。这些是干扰项,必须处理。

区分清楚这两类,后面的处理才有方向。

二、缺失值处理核心原则

处理缺失值的核心原则其实就是能填不删。直接删除是最省事的办法,但也最容易丢掉有价值的信息。

(一)方法1:直接删除

这个方法适用的情况其实很有限:

  • ●数据量足够大,缺失的比例极低,比如5%以下,删除后不影响整体分布。
  • ●某一列的缺失比例太高,比如超过80%,且本身不是核心字段,直接删列更省事。
  • ●某条数据缺得太多,比如10个字段空了8个,留着也没分析价值。

但需要小心的是如果你的样本量本身就不大,比如总共只有几百条数据,删除操作要非常谨慎。一旦删多了,后续分析的统计意义就会打折扣。动手前,备份永远是第一位的。

(二)方法2:填充

大多数情况下,我们会选择用合理的值把空缺补上。怎么填,取决于数据类型和数据分布。

  • ●均值填充:适用于没有极端值的连续数据。比如用户身高、常规商品的日销量。但如果数据里有极端值,比如有几个用户身高2.2米,均值就会被带偏。
  • ●中位数填充:适用于存在极端值的连续数据。比如用户收入、房产价格。中位数对极端值不敏感,填出来的值更稳健。
  • ●众数填充:适用于分类数据。比如用户性别、所在城市、会员等级。缺了就填出现次数最多的那个类别。
  • ●常数填充:有时候空值本身就有业务含义。比如历史消费金额为空,很可能意味着这是一个新用户或未消费用户,填0就符合业务逻辑。
  • (三)方法3:插值与模型预测

    如果数据有时序规律,比如每天的销售额、每小时的气温,线性插值往往效果不错,周一100,周三200,周二大概率在150左右。

    更复杂的情况,可以考虑用模型预测缺失值。比如用户的年收入缺失,但你有他的年龄、职业、学历、所在城市等信息,完全可以用KNN或随机森林,把这些完整字段作为输入,把缺失值算出来。这个方法精度高,但成本也高,适合核心数据字段。

三、异常值处理实用方法

(一)方法4:3σ原则

这个方法有个前提是数据必须服从正态分布。在均值±3倍标准差的范围内,覆盖了99.7%的数据,落在这个区间外的,可以视为异常。

比如学生的考试成绩、工厂生产零件的尺寸,这些数据天然符合正态分布,用3σ原则很合适。但收入、房价这类偏态分布的数据,就别用这个方法了,因为偏态分布的数据不满足正态分布假设,用3σ原则会把尾部正常的业务高点误判为异常。

(二)方法5:箱线图法

这是我个人最常用的方法,因为它不依赖任何数据分布假设。

箱线图通过四分位数来划定边界:下四分位数(Q1)、上四分位数(Q3),两者之差叫四分位距(IQR)。凡是小于Q1-1.5×IQR,或大于Q3+1.5×IQR的点,就被判定为异常值。

这个方法的好处是,它能直观地展示数据的分布情况,而且不受极端值的影响,判断标准很稳定。无论是做探索性分析,还是正式建模前的数据清洗,箱线图都是很可靠的工具。

(三)方法6:截尾与缩尾

当你确定某些异常值是录入错误,但又不想因为删除而损失数据量时,可以考虑这两种处理方式。

  • ●截尾:直接删除异常值。适合明确是错误数据、且占比很小的情况。
  • ●缩尾:把异常值替换为正常范围的边界值。比如把超过上限的销售额,统一改成上限值。这样既保留了数据量,又控制了极端值的影响。在金融风控、信用评分这类对数据完整性要求高的场景里,这个方法很常用。

    (四)方法7:分箱处理

    有些异常值,你不但不能删,还得把它们单独拎出来重点分析。

    比如电商分析里,那些超级大客户虽然人数少,但贡献了很大比例的销售额。把他们单独分成一组,分析他们的消费习惯、偏好品类,往往能得出很有价值的业务洞察。这种做法,比简单粗暴地处理掉异常值,要聪明得多。

    四、数据清洗方法选择总结

    数据清洗没有标准答案,但有经验可以借鉴:

    缺失值:看比例。缺得少直接删;缺得中等用填充,连续数据看分布,分类数据用众数;缺得多又很重要,考虑插值或模型预测。

    异常值:看性质。通用检测首选箱线图;正态分布可用3σ原则;建模需要保留数据量,用截尾或缩尾;业务分析需要深度洞察,用分箱处理。

    数据清洗这件事,看起来琐碎,但恰恰是这些琐碎的工作,决定了后续分析的底线在哪里。处理得越扎实,后面的路就走得越稳。

    光靠零散技巧做数据清洗,效率低还易踩坑,想系统化掌握数据分析全流程,提升职场竞争力,不妨了解CDA数据分析师认证。CDA是行业公认的专业数据人才认证,深耕数据清洗、建模分析等核心技能,更是求职加薪、职场进阶的硬核背书。

http://www.jsqmd.com/news/1371809/

相关文章:

  • 挑物业公司前,先搞懂这几家的技术实力 얼마나
  • 线索二叉树:原理、实现与遍历优化详解
  • 魔兽争霸III优化插件:3步解决画面拉伸和帧率锁定问题
  • 代码质量门禁实战:将SkillSentry集成到CI/CD流程中
  • 微信小程序集成AI能力实战:从云端API调用到前端交互全流程解析
  • 3个步骤轻松掌握QMK Toolbox:机械键盘固件刷写完全指南
  • 2026年杭州智慧燃气安全监管平台建设与厂商观察
  • SpringBoot+MySQL学生请销假系统开发实践
  • 口碑好的北京发电机租赁企业 2026年真实客户评价汇总参考 - 甄选测评馆
  • LabVIEW在工业CT缺陷检测中的仿真应用与优化
  • AI代码助手安全新发现:自动模式为何比人工审核更可靠?
  • 滚动轴承设计程序:核心技术解析与工程实践
  • 低代码与前端开发:核心差异与混合开发实践
  • 3个步骤搞定Minecraft模组管理:PCL2启动器完整使用指南
  • 九方通逊是做什么的?核心业务与全球实力全景解析
  • 医院处方NAATI翻译在哪办?国内正规机构怎么找?资质可查! - 实用干货补给站
  • 【AI大模型】微调数据集:高质量训练数据的制作方法
  • 【物业管理软件如何通过投诉数据分析,把“救火“变成“防火“】
  • Python A 股全量行情分类抓取:高效区分主板、创业板、科创板与北交所实战
  • PSO-GRU多变量回归预测模型原理与Matlab实现
  • 2026年太原做智慧燃气安全监管平台的公司有哪些?
  • 登报挂失收费标准是什么?2026计费规则、报价、避坑要点全整理 - 信息快递
  • 基于Unity3D的仓储可视化系统:从数据驱动到数字孪生实战
  • Java+Spring Boot社区帮扶系统开发实践
  • 7款照片转pdf工具盘点:手机自带、在线免费与电脑离线方案一网打尽
  • 服务器硬件巡检只能靠人跑机房吗?DCMP 带外监控实践
  • C++游戏开发实战:从引擎架构到性能优化的核心技术解析
  • 2026年玻璃钢烤漆雕塑厂家选购指南与行业分析 - 曲阳嘉华园林
  • Fate/Grand Automata完整指南:3步实现FGO自动化战斗,彻底解放双手
  • 负责任AI课程:解决AI偏见与提升公平性的关键技术