数据清洗

知识库简介

数据清洗不是“删掉看起来不正常的行”,而是依据明确的数据契约,把原始数据变成可解释、可验证、可追踪的输入。Agent、RAG 和评测系统中的脏数据会表现为解析失败、重复知识、错误时间线、指标虚高和不可复现。

在总路线中的位置

本库位于“数学与数据基础”。它承接 Python、JSON、正则表达式,直接服务于机器学习、知识库构建、数据标注、评测与运行监控。

学习目标

  • 为一张表或一条 JSON 事件写出 schema 与质量门槛。
  • 区分缺失、无效、重复、冲突和统计异常。
  • 规范文本、时间、类别与数值,同时保留原始数据和审计记录。
  • 建立可重复执行的清洗流程与自动质量检查。
  • 区分 schema、跨团队数据契约与面向消费者的发布清单,知道三者不能互相替代。
  • 完成一个不依赖第三方包的 Agent 运行日志清洗项目。

前置知识

会使用 Python 3 基本语法,理解 CSV、JSON、字段与数据类型;建议先完成 Python基础、JSON 与 正则表达式。先学 venv + pip;本库项目只用标准库,不要求安装额外包。

推荐学习顺序

  1. Schema 与质量门槛:先定义“什么是有效”,再谈修复。
  2. 缺失值与缺失机制:让缺失处理服从业务含义与评估边界。
  3. 重复数据与实体身份:防止重复计数、检索污染和数据泄漏。
  4. 异常值与范围规则:区分非法数据、罕见但真实的事件和分布漂移。
  5. 文本、JSON 与时间规范化:处理 Agent 工程最常见的半结构化数据。
  6. 质量验证与可复现管线:用质量报告和关卡替代肉眼抽查。
  7. 项目:Agent 运行日志清洗:运行完整清洗、隔离和报告流程。

动手实践或项目入口

clean_agent_runs.py 读取 dirty_agent_runs.csv,严格检查 schema、规范状态与 UTC 时间、拒绝重复 ID、校验延迟,并分别输出清洁数据与隐私友好的问题报告。test_clean_agent_runs.py覆盖 10 类正常、边界和失败行为。脚本拒绝覆盖源文件;既有输出也只有显式 --overwrite 才会替换。

掌握标准

  • 能写出字段名、类型、可空性、取值范围、唯一性和单位。
  • 能解释为什么缺失值不能一律填 0、异常值不能一律删除。
  • 能区分行级重复、实体重复和语义近重复。
  • 能在清洗报告中记录输入量、输出量、拒绝原因和规则版本。
  • 能在学习统计量前冻结实体/文档级分组与评测划分,并解释它如何防止泄漏。
  • 能保证同一输入与同一规则重复运行得到相同结果。
  • 能运行普通/-O 模式与 10 项测试,证明源文件不变、输出逐字节可重复且缓存已清理。

与其他知识库的关系

  • 机器学习需要在划分后拟合会学习统计量的清洗步骤,防止泄漏。
  • 数据标注需要先排除损坏、重复和隐私不合规样本。
  • 文档解析与Chunking 策略需要保留来源、页码、标题层级和稳定文档 ID。
  • 运行监控依赖统一时间、状态、错误码和延迟单位。
  • 隐私计算与AI 治理定义敏感字段、留存、访问和删除边界;数据清洗不能把哈希误当匿名化。

主要参考资料

资料核验日期:2026-07-22。pandas stable 文档当前处于 3.0 系列并会继续更新;本库项目不依赖 pandas,示例实际在 Python 3.11.9 验证。采用 pandas 或数据质量框架时应锁定项目版本并重跑契约测试。