下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/hyperiontech--auto-data-cleaning.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @hyperiontech/auto-data-cleaning。- 多源票据、数据采集,自动整理输出统一格式
- 支持多币种
- 可对数据进行分析、及可视化呈现。
阅读全文 (展开查看完整说明)
概述
把任意格式的脏表变成可直接分析的干净表。全程可解释、可溯源、异常不静默删除。
什么时候用
用:
- 表格里有重复行、空值、空白占位符("N/A"、"-"、"无")、全角半角混排、多余空格
- 日期一列里出现
2024-01-05、2024/1/6、2024.1.7、20240109、45296多种写法 - 数值列混着
¥1,200.50、980元、12.5%,没法直接计算 - 列名带空格/全角/大小写不一,或同一含义多个文件里叫法不同
- 需要按业务主键(订单号、发票号)去重、按缺失率筛掉废列
- 要在导入分析、做报表、建模型之前先把数据整理成干净状态
不用:
- 用户要的是"分析结论"而不是"干净数据" → 走数据分析类技能,本技能只负责把数据洗干净
- 交付物是 Word / PPT / 图片,且不涉及表格清洗
- 只是查询数据、不需要落盘产出
工作流(三步,默认全自动)
第一步:体检(不改数据)
python3 scripts/profile_data.py --input <数据文件> --output <工作目录>/数据体检报告.md --chart输出:行列表格规模、缺失率、重复率、每列语义类型与缺失分布、综合质量得分(0-100)、清洗建议。
只要用户没明确说"直接洗",就先跑体检把问题清单摊开给他看。
第二步:清洗(先干跑,再落地)
# 干跑:只出报告,不动数据
python3 scripts/clean_data.py --input <数据文件> --dry-run
# 正式清洗
python3 scripts/clean_data.py --input <数据文件> --output <工作目录>/清洗结果.xlsx
--primary-key 订单号 --rules config/default_rules.yaml第三步:复核
--primary-key / 异常值处理方式等业务口径拿不准时,不要替用户拍板:先按默认跑一版,把「异常明细」里的待复核项列给用户确认,再据其反馈改 --rules 重跑。
快速参考
| 场景 | 命令要点 |
|---|---|
| 只想看数据有多脏 | profile_data.py --chart |
| 全自动清洗 | clean_data.py --output 清洗结果.xlsx |
| 按主键去重 | clean_data.py --primary-key 订单号,行号 |
| 异常值只标记不删 | 默认 --outlier-action flag(推荐) |
| 异常值截断/删除 | --outlier-action clip / drop |
| 多 Sheet 全处理 | 默认全部;单个用 --sheet 订单明细 |
| 调整清洗口径 | 复制 config/default_rules.yaml 改完用 --rules 传入 |
| 只看不动 | --dry-run |
产出物
清洗结果 Excel 固定含四类 Sheet(每个输入表一组):
- 原始表名 —— 清洗后的数据
- 质量报告_表名 —— 完整性/唯一性/一致性/有效性 + 综合得分,清洗前后对比
- 异常明细_表名 —— 行号、列名、原始值、问题类型、处理方式(重复行、缺失值、格式异常、数值异常、高缺失列…逐条可查)
- 清洗日志_表名 —— 每一步做了什么、影响多少行、依据哪条规则
另有一份 <输出名>_审计日志.json,记录数据来源、时间、每张表的规则动作与前后质量,方便回查与复现。
三条不可违背的纪律
- 异常不静默删除。 重复行、数值异常、格式错误一律进「异常明细」,交人复核。
默认 outliers.action=flag,绝不默认删数据。
- 不臆造数据。 日期列缺失就保持空,不按前后行补齐;编号类列保持文本,不把
00012变成12.0。 - 先干跑再落地。 数据量大或用户口径不明时,先
--dry-run出报告,确认后再写文件。
常见错误
| 做法 | 问题 | 正确做法 |
|---|---|---|
| 直接用 pandas 读 CSV | 中文 GBK 文件乱码、分隔符猜错 | 用本技能读取,自动识别编码与分隔符 |
| 把 ID 列转成数值 | 前导零丢失、长单号丢精度 | 交给内置规则,编号类列自动保持文本 |
| 一巴掌删掉所有"异常" | 把真业务记录(大额订单、退款)当脏数据清掉 | 默认只标记,让用户复核后再决定 |
| 缺日期就按相邻行补 | 伪造出不存在的事实 | 日期列缺失保持空并登记 |
| 清洗完重新读回 Excel 核对 | pandas 会把文本 000001 读成 1,误判前导零丢失 | 核对用 openpyxl 看单元格,或直接看清洗日志 |
| 只改数据不留痕 | 出问题无法回溯谁改的 | 每次都保留「清洗日志」和审计 JSON |
环境
依赖 pandas / numpy / openpyxl / pyyaml(画体检图需 matplotlib)。缺失时:
pip install -r requirements.txt详细规则语义与调参方法见 references/cleaning-rules.md。