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

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者
🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主
📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
🚀前言
多样的数据源在短时间内为人们提供了海量的数据,但是这些数据非常容易受到噪声、丢失和数据格式不一致的影响。低质量的数据将干扰数据分析与可视化工作。数据科学家和工程师们通过大量的理论与实践,提出了很多数据预处理的技术,这些技术能帮助我们更好地挖掘数据中的知识和信息,本章将介绍这些数据预处理技术。
🚀一、数据清洗
真实世界的数据集往往充斥着不完整、带有噪声和不一致的现象。数据清洗是数据预处理流程中的核心环节,其根本目的在于通过填充缺失值、平滑噪声数据、识别与删除异常值以及纠正数据的不一致性,来提升数据的质量,为后续可靠的分析与挖掘奠定坚实基础。
🔎1.一致性检查
数据清洗的第一步是系统地发现和诊断数据中的不一致性。数据不一致可能由多种原因引起,例如:用户因隐私顾虑故意填写错误信息;人工录入时的手误且未经过校验;现实世界实体发生变化(如公司更名、产品升级)导致旧数据失效;或是在多源数据集成时,因标准、格式不统一而产生的冲突。
对每个数据属性进行合规性检测是发现不一致性的有效方法。这需要依据数据的元数据(关于数据的数据,如数据类型、约束条件等)来设定检查规则。
🦋1.1 检查数据类型
确保每个属性下的所有值都符合预定义的数据类型(如整数、浮点数、字符串、日期等)。类型错误会导致计算失败或分析错误。
- 操作示例(Excel):
- 选中需要检查的单元格或区域。
- 右键单击,选择【设置单元格格式】(见图3-1)。
- 在弹出的对话框中,查看左侧“分类”列表中当前选中的类型,即可知该区域的数据格式(见图3-2)。
- 特别关注:日期类型。不同地区日期格式(如
YYYY/MM/DD,DD/MM/YYYY,MM-DD-YYYY)混用是常见问题。必须在分析前统一格式。在图3-2的“日期”类别中,可以选择一种标准格式进行统一设置。
图3-1 Excel中“设置单元格格式”菜单项位置

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

🦋1.2 检查取值范围
对于数值型或具有明确范围的分类数据,检查其值是否落在合理的区间内。例如,年龄不应为负数,百分比应在0-100之间,产品状态只能是预设的几种。
- 操作示例(Excel - 数据验证):
-
选中某一列数据(如
Temperature)。 -
切换到【数据】选项卡,单击【数据验证】(旧版本可能叫“数据有效性”)(见图3-3)。

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

-
回到【数据验证】下拉菜单,选择【圈释无效数据】(见图3-5)。

-
此时,所有超出设定范围的值会被红色椭圆圈出,便于定位(见图3-6)。

-
🦋1.3 检查重复值
对于理论上应具有唯一性的属性(如身份证号、订单号、用户名),必须检查并处理重复记录。重复记录会导致统计失真和分析错误。
- 操作示例(Excel - 条件格式):
-
选中需要检查的列或区域。
-
在【开始】选项卡下,点击【条件格式】→【突出显示单元格规则】→【重复值】(见图3-7)。

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

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

-
🔎2.缺失值处理
缺失值是数据集中最常见的“脏数据”形式之一。处理缺失值需要根据缺失比例、数据性质和后续分析任务,谨慎选择策略。
🦋2.1 忽略记录
直接将含有缺失值的整条记录从数据集中删除。
- 适用场景:缺失值非常少,且缺失记录是完全随机的,删除后不会对数据集分布造成显著偏差;或者某条记录关键信息大部分缺失,已无分析价值。
- 缺点:会减少样本量,如果缺失并非随机,直接删除可能导致分析结果产生偏差。需谨慎使用。
🦋2.2 手动填充缺失值
由人工根据其他可靠信息来源(如原始单据、电话核实)进行填补。
- 适用场景:数据集很小,且缺失值数量极少;缺失值非常重要,必须保证绝对准确。
- 缺点:效率极低,无法用于大规模数据集。
🦋2.3 使用全局常量填充
用一个固定的标记值来填充所有缺失值,如用“Unknown”、“N/A”填充文本型缺失,用0、-1或一个明显超出正常范围的值(如-999)填充数值型缺失。
- 适用场景:简单快速,旨在保持数据集记录数完整。
- 缺点:可能引入严重的偏差。如果后续分析算法不能有效区分这些常量是“缺失标记”而非“真实值”,可能会导致错误的结论。使用时必须在数据文档中明确标注。
🦋2.4 使用相关描述统计量填充
用该属性所有有效值的中心趋势度量来填充缺失值。
- 均值填充:适用于数值型数据,且分布近似对称、没有极端异常值时。
- 中位数填充:适用于数值型数据,当分布偏斜或有异常值时,中位数比均值更稳健。
- 众数填充:适用于分类数据(文本型或离散数值型)。
- 进阶策略:对于分类任务,可以按目标类别分组,然后用该组内的统计量(如组内均值)进行填充,这样能更好地保持数据与类别的关系。
🦋2.5 使用其他算法预测缺失值
利用数据集中其他属性(特征)与缺失属性之间的关系,构建预测模型来估算最可能的缺失值。
- 常用方法:回归模型、K-最近邻(KNN)、决策树、随机森林等。例如,可以用“年龄”、“职业”、“城市”来预测“收入”的缺失值。
- 优点:相对科学,能利用数据内部的关联信息,填充值更接近真实情况。
- 缺点:计算复杂,如果变量间关系很弱,预测效果可能不佳,且可能增加过拟合风险。
在Excel中定位缺失值的便捷操作:
-
选中整个数据区域,点击【数据】选项卡下的【筛选】按钮。
-
点击含有缺失值属性列的下拉筛选按钮(见图3-10)。

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

-
界面将仅显示该属性为缺失值的所有记录,方便集中处理(见图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):
- 箱体下边界:Q1(第25百分位数)。
- 箱体上边界:Q3(第75百分位数)。
- 箱体内中线:中位数(第50百分位数)。
- 上须线:上限,通常为
Q3 + 1.5 * IQR以内的最大值。 - 下须线:下限,通常为
Q1 - 1.5 * IQR以内的最小值。 - 独立点(异常值):任何大于
Q3 + 1.5 * IQR或小于Q1 - 1.5 * IQR的值,在图中用点单独标出。
图3-15 箱线图结构说明图
综合示例:分析500名学生数学成绩中的异常点
假设我们已对成绩数据升序排序。
-
创建散点图(索引-值图):
-
选中数据,在【插入】选项卡点击【散点图】(见图3-16)。

-
生成的散点图中,位于图表顶部或底部、明显脱离密集点群的点,即为可能的异常点(见图3-17)。

-
-
创建直方图:
-
在【插入】选项卡点击【统计图表】→【直方图】(见图3-18)。

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

-
-
创建箱线图:
-
在【插入】选项卡点击【统计图表】→【箱形图】(见图3-20)。

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

-
发现异常值后,处理方式需谨慎:
- 核查:首先检查是否为录入或传输错误,若是则纠正。
- 分析:若不是错误,需分析其产生原因。它可能代表一种重要的特殊模式(如欺诈交易、疾病爆发)。
- 处理:
- 保留:如果异常值代表有意义的极端情况,且对整体分析影响不大或正是分析焦点,则应保留。
- 修正:如果是错误,用缺失值处理方法进行修正。
- 剔除:如果异常值数量很少,且会严重干扰主要分析模型(如线性回归),可以考虑将其剔除,但必须在报告中说明。
数据清洗没有一成不变的规则,必须结合领域知识、数据分析目标和数据本身的特性来做出最佳决策。
- 点赞
- 收藏
- 关注作者


















评论(0)