第2讲
数据清洗
“脏数据比没有数据更可怕”
客户数据分析技术
阶段一:数据基础与客户认知
| 64学时 | 4学分 | 核心工具:Excel + Kimi/ChatGPT + Power BI |
|---|
一、情景导入:小林的噩梦
小林花了两天时间分析数据,兴冲冲地向王总汇报:“我发现我们的客户平均年龄是999岁!”
王总差点把咖啡喷出来:“999岁?你确定你分析的是我们的客户数据,不是西游记人物谱?”
小林回去仔细一看,发现数据里到处都是“地雷”:
有人的年龄填了“999”(系统默认值)
有人的地址写了“不知道”和“火星”
同一个手机号138xxxx注册了8个账号
有人单笔订单金额是-500元(负数?退款?)
有人购买数量填了“0”但支付金额是299元小林终于明白了一个道理:“Garbage In, Garbage Out”——垃圾数据进去,垃圾结论出来。不清洗数据就做分析,等于在沙子上盖房子。
二、知识讲解
2.1 什么是数据质量?
数据质量,简单来说,就是数据是否准确、完整、一致、及时、唯一。它是数据分析的基础——如果数据本身就是错的,那么再精妙的分析方法也无法得出正确的结论。我们用五个维度来衡量数据质量:
| 维度 | 含义 | 反面例子 |
|---|---|---|
| 准确性 | 数据值是否正确 | 年龄=999 |
| 完整性 | 是否有缺失 | 地址为空 |
| 一致性 | 不同来源的数据是否矛盾 | CRM显示VIP但订单系统无记录 |
| 及时性 | 数据是否反映当前状态 | 用去年的数据做今年的决策 |
| 唯一性 | 是否有重复记录 | 同一客户出现多次 |
2.2 常见数据问题及处理方法
在实际工作中,数据问题主要分为以下几类,每一类都有相应的处理策略:
**缺失值:**数据中存在空白或未填写的字段。处理方法有两种:删除(当缺失比例很小时)或填充(用均值、中位数、众数或AI推荐值填充)。选择哪种方法,取决于业务场景和缺失比例。
**重复值:**同一个客户在数据中出现多次。处理前需要确定“判断标准”——哪些字段组合可以判断为同一客户(如手机号、客户ID等),然后进行去重操作。
**异常值:**明显偏离正常范围的数据点。统计学上的定义是“超出均值±3个标准差”的数据。处理方法包括删除、修正或保留(如果异常值本身有商业意义)。
**格式不一致:**同一字段的格式混用。常见情况包括:日期格式混用(2024.1.1 vs 2024-01-01)、大小写混用、多余空格等。这类问题看似小,但会导致分析结果偏差。
**逻辑错误:**数据本身不符合常理。例如:年龄<0、购买数量为0但金额>0、手机号位数不对等。这类问题需要结合业务经验来判断。
2.3 AI辅助数据清洗
传统的数据清洗方式是手动逐行检查,费时费力且容易遗漏。在AI时代,我们可以用更高效的方式完成这项工作:
传统方式:手动逐行检查,用Excel条件格式高亮、数据透视表筛选,费时费力
AI方式:上传数据到Kimi/ChatGPT,用自然语言指令清洗,快速定位问题示例Prompt:“请检查这个Excel文件中的数据质量问题,列出所有缺失值、异常值和重复记录,并给出修复建议”
**关键提醒:**AI能发现大部分问题,但不能完全依赖AI——你需要验证AI的判断是否正确。AI可能会把合理的极端值误判为异常值,也可能遗漏某些隐蔽的逻辑错误。
三、操作步骤:清洗「潮玩星球」数据
步骤1:数据质量诊断
用Excel的条件格式高亮缺失值(空白单元格)
用数据透视表检查重复值
用排序功能找出异常值(如年龄>100的记录)
用Kimi辅助诊断:上传文件,让AI列出所有数据质量问题
步骤2:处理缺失值
练习:对“客户年龄”列的缺失值,用中位数填充。
- Excel操作:选中空白单元格 → 输入公式=MEDIAN(整列) → Ctrl+Enter
步骤3:去重
练习:找出“手机号”列的重复记录。
- Excel操作:选中数据区域 → 数据 → 删除重复值 → 选择“手机号”作为判断列
步骤4:处理异常值
练习:将年龄>100的记录标记为异常,用中位数替换。
**思考:**为什么要用中位数而不是均值?因为均值容易被极端值拉偏。例如,如果大部分客户年龄在20-30岁,但有一个年龄填了999,均值会被拉高很多,而中位数不受极端值影响。
步骤5:记录清洗过程
在笔记本上记录:
你发现了什么问题?
用了什么方法处理?
处理后数据有什么变化?
四、课堂练习
练习1:数据质量评估(基础)
以下是一段“脏数据”,请找出所有问题:
| 客户ID | 姓名 | 年龄 | 手机号 | 消费金额 |
|---|---|---|---|---|
| C001 | 张三 | 25 | 13812345678 | 299 |
| C002 | 李四 | 999 | 13812345678 | -50 |
| C003 | 0 | 1381234 | 158 | |
| C003 | 王五 | 30 | 13812345678 | 200 |
| C004 | 赵六 | 22 | 1381234567X |
请找出上表中的所有数据问题,并标注问题类型(缺失值/重复值/异常值/格式错误/逻辑错误)。
练习2:清洗方案设计(进阶)
针对上面的脏数据,请设计完整的清洗方案:
每个问题用什么方法处理?
处理的优先级是什么?(先处理什么,后处理什么?)
清洗后预期数据量是多少行?
五、课后任务
项目任务P1-2:清洗「潮玩星球」客户数据集,输出数据质量报告(模板已提供)
进阶挑战:对比“手动清洗”和“AI辅助清洗”的效率,记录各自花了多少时间
思考题:如果你是数据分析师,你会在什么情况下选择“不清洗就直接分析”?这样做有什么风险?