运行时依赖
版本
multi-source-data-cleaner 1.0.0 首次发布:- 支持多格式数据解析(Excel、CSV/TSV、JSON、剪贴板文本)- 提供 AI 驱动字段识别(姓名、电话、邮箱、ID 等)并可自定义映射 - 通过去重(精确与模糊)、自动补全及字段格式标准化清洗数据 - 高阶版本启用 AI 分类、规则标签、多源合并与数据质量报告 - 集成 Feishu 多维表格与自动文档 - 提供 CLI 与 Python API,错误处理清晰,功能按版本分级控制
安装命令
点击复制技能文档
元数据
| 字段 | 值 | |------|-----| | name | multi-source-data-cleaner | | label | 多源数据清洗器 | | version | 1.0.0 | | language | Python | | runtime | subprocess (scripts/main.py) | | trigger_words | 数据清洗、数据去重、表格整理、数据合并、格式统一、CRM数据整理、Excel清洗 |---
描述
上传乱数据,输出干净数据。支持多格式解析、智能字段识别、AI去重/补全/格式化、多源关联合并,飞书原生输出(多维表格+云文档质量报告)。 适用场景: 电商订单整理、CRM客户数据清洗、银行流水整理、花名册整理、多系统数据合并。---
能力
F1 · 多格式识别与解析
- Excel (.xlsx / .xls)
- CSV / TSV
- JSON(半结构化)
- 剪贴板粘贴文本
F2 · 智能字段识别
- AI 自动识别:姓名、手机号、邮箱、地址、金额、日期、SKU、订单号、身份证、性别等
- 支持用户自定义字段映射覆盖
F3 · 数据清洗
- 去重:精确去重 + 智能模糊去重(FuzzyWuzzy,阈值 88%)
- 补全:均值/众数/语义推断/留空
- 格式统一:
1xx-xxxx-xxxx
- 日期 → YYYY-MM-DD
- 金额 → 两位小数
- 地址 → 省市区街道标准化 F4 · 数据分类/打标签(专业版)
- 内置 8 种业务规则(高价值客户、沉睡用户、VIP客户、企业客户等)
- 支持自定义 JSON 规则
- AI 自动打标签(需要专业版 + AI API Key)
F5 · 多源关联合并(专业版)
- 按手机号/姓名/订单号等跨文件关联
- Fuzzy Join(模糊匹配阈值可调)
- 支持 2+ 文件迭代合并
F6 · 飞书原生输出
- 导出干净 Excel / CSV
- 飞书多维表格(标准版/专业版):直接写入 Bitable
- 数据质量报告 → 飞书云文档:重复率/缺失率/清洗前后对比
---
定价 / 版本功能
| 功能 | 免费版 | 基础版 | 标准版 | 专业版 | |------|--------|--------|--------|--------| | 月额度 | 50条 | 500条 | 3000条 | 不限 | | 数据源数 | 1 | 3 | 不限 | 不限 | | 最大列数 | 10 | 50 | 200 | 不限 | | 多格式解析 | ❌ | ✅ | ✅ | ✅ | | 基础去重 | ✅ | ✅ | ✅ | ✅ | | 智能模糊去重 | ❌ | ❌ | ✅ | ✅ | | 格式统一 | ❌ | ❌ | ✅ | ✅ | | 智能补全 | ❌ | ❌ | ✅ | ✅ | | 多源合并 | ❌ | ❌ | ❌ | ✅ | | AI分类/打标签 | ❌ | ❌ | ❌ | ✅ | | 数据质量报告 | ❌ | ❌ | ❌ | ✅ | | 飞书多维表格 | ❌ | ❌ | ❌ | ✅ |权限隔离实现: scripts/tier_limits.py — 所有操作入口均调用 check_tier() / check_feature() 验证。
---
调用方式
Agent 直接调用
``python
from main import run_clean_pipeline, run_merge_pipeline # 基本清洗
result = run_clean_pipeline(
sources=["订单数据.xlsx"],
texts=None,
output_format="xlsx",
output_path="/tmp/cleaned.xlsx",
dedup_strategy="auto",
fill_strategy="auto",
classify=True,
ai_model="deepseek",
generate_report=True,
)
# 多源合并
merge_result = run_merge_pipeline(
sources=["客户表.xlsx", "订单表.csv"],
on=["手机号"],
fuzzy_on=["姓名"],
fuzzy_threshold=85,
output_format="xlsx",
)
` CLI 调用
`bash
# 清洗本地文件
python scripts/main.py clean -i data.xlsx -o cleaned.xlsx -f xlsx # 粘贴文本数据
python scripts/main.py clean -t "姓名,电话\n张三,13800138000\n李四,13900139000" -o cleaned.csv -f csv
# 多源合并
python scripts/main.py merge --sources data1.csv data2.csv --on 手机号 -o merged.xlsx
# 生成质量报告
python scripts/main.py clean -i cleaned.xlsx --report-title "清洗报告" -o report.md
` ---
函数参考
run_clean_pipeline()
参数:
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| sources | List[str] | None | 文件路径列表 |
| texts | List[str] | None | 粘贴文本列表 |
| tier | str | None | free/basic/std/pro |
| output_format | str | "xlsx" | xlsx 或 csv |
| output_path | str | None | 输出路径(自动生成临时文件) |
| custom_field_mapping | Dict[str,str] | None | {列名: 类型} 覆盖 |
| dedup_strategy | str | "auto" | exact / fuzzy / auto |
| fill_strategy | str | "auto" | auto / mean / mode / leave_blank |
| classify | bool | False | 是否启用 AI 分类 |
| ai_model | str | None | minimax / deepseek |
| generate_report | bool | True | 是否生成质量报告 |
| bitable_output | bool | False | 输出到飞书多维表格 |
| feishu_folder_token | str | None | 飞书文件夹 token |
| report_title | str | "数据质量报告" | 报告文档标题 | 返回:
Dict 含 file_path, cleaned_rows, clean_report, usage, report_md, bitable, doc 等。 ---
环境变量
| 变量 | 必填 | 说明 |
|------|------|------|
| DATA_CLEANER_API_KEY | AI 功能需填写 | MiniMax 或 DeepSeek API Key |
| DATA_CLEANER_TIER | 推荐填写 | 订阅版本(free/basic/std/pro),默认 free |
| DATA_CLEANER_STATE_FILE | 可选 | 月度用量记录文件路径 | ---
依赖
`
pandas>=1.5
openpyxl>=3.0
xlrd>=2.0
fuzzywuzzy>=0.18
python-Levenshtein>=0.12
`
安装:pip install pandas openpyxl xlrd fuzzywuzzy python-Levenshtein ---
错误处理
| 异常 | 说明 | 用户提示 |
|------|------|---------|
| TierLimitExceeded | 超出月度额度或数据源数限制 | 提示升级版本 |
| FeatureNotAvailable | 当前版本不支持该功能 | 提示解锁方式 |
| MergeError | 合并失败(键不匹配等) | 提示检查关联键 |
| ExportError | 导出失败(APIKey等) | 提示配置方式 | ---
备注
- 所有 DataFrame 操作使用
dtype=str + keep_default_na=False,避免意外类型转换
日期解析支持: YYYY-MM-DD、YYYY/MM/DD、YYYY年MM月DD日、YYYYMMDD、Unix时间戳
手机号格式统一:自动识别 11 位中国手机号并格式化为 1xx-xxxx-xxxx
模糊去重阈值默认 88%(FuzzyWuzzy ratio),可在 run_merge_pipeline 中通过 fuzzy_threshold 参数调整
月度用量在 /tmp/data_cleaner_state.json` 中持久化,重启后保留
---