表格数据体检分析
把表格丢进来,先搞清楚数据本身干不干净、分布长什么样。
触发场景
- 拿到一份数据,先做体检再分析
- 核对导出数据有没有缺失、重复
- 找数值列的异常点(录错、极端值)
- 看两个指标之间有没有相关关系
输入
python scripts/ea_analyze.py --file data.csv
python scripts/ea_analyze.py --file data.csv --json
xlsx/xls 需先另存为 CSV(纯标准库无 Excel 解析能力,工具会明确提示)。
自动尝试 utf-8-sig / utf-8 / gbk / gb18030 四种编码。
输出六部分
| 部分 | 内容 |
|---|---|
| 字段概览 | 自动识别数值/日期/文本类型、缺失数、缺失率 |
| 数值列统计 | 样本数、均值、中位数、最小最大、Q1/Q3、标准差 |
| 异常值检测 | IQR 四分位距法,给出正常区间与异常样例 |
| 重复行检测 | 完全重复行的组数与样例 |
| 相关性 | 数值列两两皮尔逊相关系数,标注强/中/弱 |
| 数据规模 | 行列数、文件编码 |
两个经过实测的细节
1. 高集中度列的异常值误判保护
当一列数据几乎全部相同(例如客单价全是 80),IQR 会趋近于零,此时任何微小波动(80.33、80.36)都会被 IQR 法判为异常值——这是纯噪音。工具会自动识别这种情况(IQR 不足中位数的 1%)并跳过该列,同时说明跳过原因,而不是输出一堆假异常。
2. 编码自动探测
国内导出的 CSV 常见 GBK 编码,直接按 UTF-8 读会乱码或报错。工具按 utf-8-sig → utf-8 → gbk → gb18030 顺序尝试,并在输出中标注实际使用的编码。
脚本
scripts/ea_analyze.py:分析引擎(纯标准库)
边界说明
- 只做描述性统计,不做预测、不做行业基准对比
- 相关性不等于因果,输出中会明确提示
- 异常值可能是真实极端情况,删除前请确认原因
- 不支持 xlsx/xls 直接读取,会提示转换
- 纯本地运行,不联网、不上传任何数据
版本历史
- v1.0.0 (2026-09-24):初始版本,六部分体检报告
<!-- BEGIN_REAL_OUTPUT -->
装完 30 秒能看到什么(真实输出,非手写)
命令:python scripts/ea_analyze.py --file sales_demo.csv
数据来源:sales_demo.csv(编码 utf-8-sig)
==========================================================================
表格数据体检分析
==========================================================================
数据规模:14 行 × 9 列
【字段概览】
字段 类型 缺失 缺失率
----------------------------------------------
日期 日期 0 0.0%
商品名称 文本 0 0.0%
渠道 文本 0 0.0%
曝光量 数值 1 7.1%
点击量 数值 0 0.0%
成交件数 数值 1 7.1%
<!-- END_REAL_OUTPUT -->