展开知识库目录
数据清洗为什么越改越乱:先冻结原始数据、字段字典和规则
数据清洗最危险的不是漏掉一个空值,而是直接覆盖原表后再也说不清改了什么。先冻结原始快照、字段字典和规则,再用可重跑过程生成分析数据。
Excel 里改了三天异常值,导师问原始数据时已经找不回来了
学生在唯一一份 Excel 上删除重复行、统一日期、把 999 改成空值,又根据图表把几个‘离群点’改成平均数。分析结果不理想后,他想比较另一套规则,却不知道哪些单元格改过、999 原本代表缺失还是有效编码,也无法证明行数减少的原因。
可靠清洗必须可追踪、可重跑、可比较。原始数据只读保存,每次处理由脚本、查询或明确记录产生新版本;字段含义和缺失编码先进入字典,异常规则在看最终结果前定义,无法判断的记录保留原值并标记待核对。
- 建立原始、工作和分析三层数据
- 写出字段字典与异常规则
- 每次清洗都能重跑并解释行数变化
原始数据、清洗过程和分析数据承担不同职责
原始层只读
保存接收或导出的原文件、来源、时间、权限、哈希和行列数。不排序后覆盖,不手工改值;每次新导出作为新的原始快照。
工作层记录变换
脚本或查询从指定原始版本读取,产生标准化字段、异常标记和清洗日志。规则变更形成新版本,不静默覆盖旧结果。
分析层服务冻结口径
只包含当前分析需要的派生字段和纳入样本,绑定代码、字段字典和生成日期;论文数字从该版本统一生成。
先写字段含义,再讨论空值、范围和异常
| 字段字典列 | 要记录什么 | 示例 | 为什么需要 |
|---|---|---|---|
| 变量身份 | 原字段名、标准名、含义、来源表 | visit_date:本次实际访视日期 | 防止同名异义或一义多名 |
| 类型与格式 | 字符、整数、小数、日期、分类及格式 | YYYY-MM-DD | 避免软件自动猜测和静默转换 |
| 单位与时间 | 测量单位、时区、观察窗口和时间点 | 体重 kg;基线后 12 周 | 避免单位混用和时间错位 |
| 编码与缺失 | 类别标签、特殊编码和缺失原因 | -9=拒答,-8=不知道 | 不能把不同缺失原因都改成 0 |
| 允许范围 | 理论范围、业务规则和条件范围 | 结束日期不得早于开始日期 | 区分不可能值与罕见但真实值 |
| 主键与关系 | 唯一标识、复合键、表间关系和重复定义 | participant_id + visit_no | 先定义重复,才能安全去重 |
清洗不是把数据变漂亮,而是把问题显式化并留下处理依据
- 01
盘点并冻结输入
记录文件名、来源、导出时间、大小、哈希、工作表、编码和行列数;设置原始层只读,并确认备份位置。
- 02
运行结构检查
检查列名、类型、主键、重复、缺失模式、类别水平和表间关系,先输出报告,不立即修改。
- 03
逐类定义规则
分别处理格式标准化、缺失编码、精确重复、逻辑冲突和范围异常。每条规则写判断条件、动作、理由和是否需要人工复核。
- 04
保留原值和异常标记
重要变换新增标准化列;删除或更正时保留记录 ID、原值、新值、规则编号和处理状态。无法确认的值不自动填补。
- 05
先在小样本试跑
选正常、边界、缺失和异常样例检查规则,确认不会误删;再运行全量并输出每条规则命中数量。
- 06
对账并冻结分析版
核对输入输出行数、唯一键、合并未匹配、关键分布和抽样原始行。批准后生成带版本号的分析数据,不在分析过程中手改。
最少保留输入、规则、输出和对账四类记录
数据版本与规则记录
运行编号: 运行日期与执行人: 输入文件:路径 / 版本 / 哈希 / 行列数 字段字典版本: 清洗脚本与环境:提交号 / 语言 / 包版本 / 命令 规则编号: 判断条件: 处理动作:保留并标记 / 标准化 / 更正 / 排除 / 人工复核 理由与依据: 命中记录数: 异常清单位置: 输出文件:路径 / 版本 / 哈希 / 行列数 主键重复数: 合并未匹配数: 与上一版差异: 抽查记录:记录 ID / 原值 / 输出值 / 核对人 批准用于分析:是 / 否 / 待确认
不要先把异常值删掉,先确认它是录入错误、规则错误还是真实极端情况
清洗后样本量突然减少
- 原因
- 去重键错误、连接方式改变或多个条件连续过滤。
- 怎么改
- 按步骤输出行数和被排除记录 ID,定位第一次下降,不从最终文件猜。
日期或数值出现大量空值
- 原因
- 解析格式、地区设置、单位或特殊缺失编码没有在转换前处理。
- 怎么改
- 回到原字符串,列出转换失败样例和模式,修规则后整批重跑。
同一规则每次命中数量不同
- 原因
- 输入版本、运行环境、排序依赖或随机过程没有锁定。
- 怎么改
- 核对哈希、版本和运行命令,消除隐式状态并保存会话信息。
异常值处理后结论大幅变化
- 原因
- 处理规则可能依赖结果,或极端值对估计确有影响。
- 怎么改
- 保留主分析与预定义敏感性分析,报告规则和差异,不挑选更好看的结果。
数据文档从收集时开始,不能等论文写作时再补
核对变量、值标签、派生过程、文件结构、版本和上下文文档,页面会重定向到当前资料地址。
一手来源NIH Data Management and Sharing Policy用于核对数据类型、工具、标准、保存、访问和监督等数据管理计划边界;该站可能限制匿名自动访问。
字段含义、异常规则、保存期限和共享范围必须依据实际数据提供者、伦理批件和机构制度确认。
