【愚公系列】《数据可视化分析与实践》007-数据预处理(数据清洗)

举报
愚公搬代码 发表于 2026/03/11 08:19:27 2026/03/11
【摘要】 💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者🏆【荣誉殿堂】🎖 连续三年蝉联"华为云十佳博主"(2022-2024)🎖 双冠加冕CSDN"年度博客之星TOP...

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析

🚀前言

多样的数据源在短时间内为人们提供了海量的数据,但是这些数据非常容易受到噪声、丢失和数据格式不一致的影响。低质量的数据将干扰数据分析与可视化工作。数据科学家和工程师们通过大量的理论与实践,提出了很多数据预处理的技术,这些技术能帮助我们更好地挖掘数据中的知识和信息,本章将介绍这些数据预处理技术。

🚀一、数据清洗

真实世界的数据集往往充斥着不完整、带有噪声和不一致的现象。数据清洗是数据预处理流程中的核心环节,其根本目的在于通过填充缺失值平滑噪声数据识别与删除异常值以及纠正数据的不一致性,来提升数据的质量,为后续可靠的分析与挖掘奠定坚实基础。

🔎1.一致性检查

数据清洗的第一步是系统地发现和诊断数据中的不一致性。数据不一致可能由多种原因引起,例如:用户因隐私顾虑故意填写错误信息;人工录入时的手误且未经过校验;现实世界实体发生变化(如公司更名、产品升级)导致旧数据失效;或是在多源数据集成时,因标准、格式不统一而产生的冲突。

对每个数据属性进行合规性检测是发现不一致性的有效方法。这需要依据数据的元数据(关于数据的数据,如数据类型、约束条件等)来设定检查规则。

🦋1.1 检查数据类型

确保每个属性下的所有值都符合预定义的数据类型(如整数、浮点数、字符串、日期等)。类型错误会导致计算失败或分析错误。

  • 操作示例(Excel)
    1. 选中需要检查的单元格或区域。
    2. 右键单击,选择【设置单元格格式】(见图3-1)。
    3. 在弹出的对话框中,查看左侧“分类”列表中当前选中的类型,即可知该区域的数据格式(见图3-2)。
  • 特别关注:日期类型。不同地区日期格式(如YYYY/MM/DDDD/MM/YYYYMM-DD-YYYY)混用是常见问题。必须在分析前统一格式。在图3-2的“日期”类别中,可以选择一种标准格式进行统一设置。

图3-1 Excel中“设置单元格格式”菜单项位置

在这里插入图片描述

图3-2 “设置单元格格式”对话框(日期类型示例)

在这里插入图片描述

🦋1.2 检查取值范围

对于数值型或具有明确范围的分类数据,检查其值是否落在合理的区间内。例如,年龄不应为负数,百分比应在0-100之间,产品状态只能是预设的几种。

  • 操作示例(Excel - 数据验证)
    1. 选中某一列数据(如Temperature)。

    2. 切换到【数据】选项卡,单击【数据验证】(旧版本可能叫“数据有效性”)(见图3-3)。
      在这里插入图片描述

    3. 在“设置”选项卡中,允许条件选择“小数”或“整数”,并设置合理的“最小值”和“最大值”(如-30到50)(见图3-4),点击【确定】。
      在这里插入图片描述

    4. 回到【数据验证】下拉菜单,选择【圈释无效数据】(见图3-5)。
      在这里插入图片描述

    5. 此时,所有超出设定范围的值会被红色椭圆圈出,便于定位(见图3-6)。
      在这里插入图片描述

🦋1.3 检查重复值

对于理论上应具有唯一性的属性(如身份证号、订单号、用户名),必须检查并处理重复记录。重复记录会导致统计失真和分析错误。

  • 操作示例(Excel - 条件格式)
    1. 选中需要检查的列或区域。

    2. 在【开始】选项卡下,点击【条件格式】→【突出显示单元格规则】→【重复值】(见图3-7)。
      在这里插入图片描述

    3. 在弹出的对话框中,选择一种醒目的突出显示格式(如“浅红填充色深红色文本”),点击【确定】(见图3-8)。
      在这里插入图片描述

    4. 该区域内所有重复出现的值会被高亮显示(见图3-9)。后续需要人工或根据业务规则判断是真正的重复数据(需删除/合并)还是合法重复。
      在这里插入图片描述

🔎2.缺失值处理

缺失值是数据集中最常见的“脏数据”形式之一。处理缺失值需要根据缺失比例、数据性质和后续分析任务,谨慎选择策略。

🦋2.1 忽略记录

直接将含有缺失值的整条记录从数据集中删除。

  • 适用场景:缺失值非常少,且缺失记录是完全随机的,删除后不会对数据集分布造成显著偏差;或者某条记录关键信息大部分缺失,已无分析价值。
  • 缺点:会减少样本量,如果缺失并非随机,直接删除可能导致分析结果产生偏差。需谨慎使用。

🦋2.2 手动填充缺失值

由人工根据其他可靠信息来源(如原始单据、电话核实)进行填补。

  • 适用场景:数据集很小,且缺失值数量极少;缺失值非常重要,必须保证绝对准确。
  • 缺点:效率极低,无法用于大规模数据集。

🦋2.3 使用全局常量填充

用一个固定的标记值来填充所有缺失值,如用“Unknown”、“N/A”填充文本型缺失,用0、-1或一个明显超出正常范围的值(如-999)填充数值型缺失。

  • 适用场景:简单快速,旨在保持数据集记录数完整。
  • 缺点:可能引入严重的偏差。如果后续分析算法不能有效区分这些常量是“缺失标记”而非“真实值”,可能会导致错误的结论。使用时必须在数据文档中明确标注。

🦋2.4 使用相关描述统计量填充

用该属性所有有效值的中心趋势度量来填充缺失值。

  • 均值填充:适用于数值型数据,且分布近似对称、没有极端异常值时。
  • 中位数填充:适用于数值型数据,当分布偏斜或有异常值时,中位数比均值更稳健。
  • 众数填充:适用于分类数据(文本型或离散数值型)。
  • 进阶策略:对于分类任务,可以按目标类别分组,然后用该组内的统计量(如组内均值)进行填充,这样能更好地保持数据与类别的关系。

🦋2.5 使用其他算法预测缺失值

利用数据集中其他属性(特征)与缺失属性之间的关系,构建预测模型来估算最可能的缺失值。

  • 常用方法:回归模型、K-最近邻(KNN)、决策树、随机森林等。例如,可以用“年龄”、“职业”、“城市”来预测“收入”的缺失值。
  • 优点:相对科学,能利用数据内部的关联信息,填充值更接近真实情况。
  • 缺点:计算复杂,如果变量间关系很弱,预测效果可能不佳,且可能增加过拟合风险。

在Excel中定位缺失值的便捷操作

  1. 选中整个数据区域,点击【数据】选项卡下的【筛选】按钮。

  2. 点击含有缺失值属性列的下拉筛选按钮(见图3-10)。
    在这里插入图片描述

  3. 在筛选列表中,通常只勾选【(空白)】(或预先定义的表示缺失的符号,如“NA”),然后点击【确定】(见图3-11)。
    在这里插入图片描述

  4. 界面将仅显示该属性为缺失值的所有记录,方便集中处理(见图3-12)。

在这里插入图片描述

🔎3.噪声数据与异常值检测

噪声数据是指数据中存在的随机误差或干扰。异常值(离群点)是明显偏离大多数数据观测值的点。它们可能源于测量误差、录入错误,也可能代表罕见的真实事件(如金融欺诈)。识别和处理它们至关重要。

使用可视化方法是发现异常值直观有效的手段。

🦋3.1 直方图

直方图是展示单个数值变量分布的图表。它将值域划分为等宽的区间(箱子),用柱子的高度表示落入每个区间的观测值数量。

  • 识别异常:寻找那些远离主分布、柱子高度极低(可能只有一个或几个观测值)的孤立区间(见图3-13)。这些区间对应的值很可能是异常值。
  • 注意:需要结合业务知识判断,极少数值不一定就是错误,也可能是合法的极端情况。

图3-13 直方图示例(可观察分布尾部的异常区间)
在这里插入图片描述

🦋3.2 散点图

散点图用于展示两个数值变量之间的关系。每个点代表一个观测值,其位置由两个变量的值决定。

  • 识别异常
    • 单变量异常:可以绘制“索引-值”散点图(横轴为记录序号,纵轴为属性值)。偏离主要点群的点即为异常(见图3-14)。
    • 关系异常:在双变量散点图中,远离主要趋势线或点簇的孤立点,可能是关于这两个变量关系的异常点(见图3-14)。

图3-14 散点图示例(左:索引-值图;右:双变量关系图,红圈为离群点)
在这里插入图片描述

🦋3.3 箱线图

箱线图是显示数据分布和识别异常值的强大工具。它基于五数概括法(最小值、下四分位数Q1、中位数、上四分位数Q3、最大值)和IQR(四分位距,IQR = Q3 - Q1)来构建。

  • 箱线图组成(见图3-15):
    1. 箱体下边界:Q1(第25百分位数)。
    2. 箱体上边界:Q3(第75百分位数)。
    3. 箱体内中线:中位数(第50百分位数)。
    4. 上须线:上限,通常为 Q3 + 1.5 * IQR 以内的最大值。
    5. 下须线:下限,通常为 Q1 - 1.5 * IQR 以内的最小值。
    6. 独立点(异常值):任何大于 Q3 + 1.5 * IQR 或小于 Q1 - 1.5 * IQR 的值,在图中用点单独标出。

图3-15 箱线图结构说明图
在这里插入图片描述

综合示例:分析500名学生数学成绩中的异常点
假设我们已对成绩数据升序排序。

  • 创建散点图(索引-值图)

    1. 选中数据,在【插入】选项卡点击【散点图】(见图3-16)。
      在这里插入图片描述

    2. 生成的散点图中,位于图表顶部或底部、明显脱离密集点群的点,即为可能的异常点(见图3-17)。
      在这里插入图片描述

  • 创建直方图

    1. 在【插入】选项卡点击【统计图表】→【直方图】(见图3-18)。
      在这里插入图片描述

    2. 在直方图中,观察最左侧或最右侧是否存在孤立的矮柱,对应分数段的学生成绩可能异常(见图3-19)。需结合实际情况判断(如是否为特长生或录入错误)。
      在这里插入图片描述

  • 创建箱线图

    1. 在【插入】选项卡点击【统计图表】→【箱形图】(见图3-20)。
      在这里插入图片描述

    2. 箱线图会直接以“独立点”的形式清晰地标出所有基于IQR准则判定的异常值(见图3-21),非常直观。
      在这里插入图片描述

发现异常值后,处理方式需谨慎:

  1. 核查:首先检查是否为录入或传输错误,若是则纠正。
  2. 分析:若不是错误,需分析其产生原因。它可能代表一种重要的特殊模式(如欺诈交易、疾病爆发)。
  3. 处理
    • 保留:如果异常值代表有意义的极端情况,且对整体分析影响不大或正是分析焦点,则应保留。
    • 修正:如果是错误,用缺失值处理方法进行修正。
    • 剔除:如果异常值数量很少,且会严重干扰主要分析模型(如线性回归),可以考虑将其剔除,但必须在报告中说明。
      数据清洗没有一成不变的规则,必须结合领域知识、数据分析目标和数据本身的特性来做出最佳决策。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。