Numeric Format Cleaner 数值格式清洗 Skill
功能概述
本 skill 读取 JSONL 结构化数据,按字段规则统一数值表达:单位转换、千分位格式、科学计数法、范围限制和空值填充。 适用于实验记录、环境观测、统计表等需要统一数值格式的科研数据处理场景。
触发条件
当用户请求以下任务时,应使用此skill:
- 数值格式清洗
- 单位统一
- 千分位规整
- 科学计数法输出
- 空值填充
- 按字段规则整理数值
核心参数说明
必需参数
| 参数 | 说明 |
|---|---|
--input |
输入 JSONL 文件路径 |
--output |
输出 JSONL 文件路径 |
--field_rules |
字段清洗规则 JSON |
可选参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--conversion_rules |
单位转换规则 JSON | 空字符串 |
--decimal_places |
默认小数位数 | 2 |
--fill_null |
空值填充值 | 空字符串 |
--mark_cleaned |
是否标记已清洗样本 | True |
--stats_output |
统计输出文件路径 | numeric_format_cleaner_stats.json |
输入文件格式
输入必须为 JSONL,每行一个对象,字段值可以是数值、带单位字符串或空值。
{"distance": "12.3km", "weight": "1500g"}
{"distance": "N/A", "weight": null}
使用方法
python scripts/run_numeric_format_cleaner.py \
--input data.jsonl \
--output cleaned.jsonl \
--field_rules '{"distance":{"target_unit":"m","decimal_places":2}}'
python scripts/run_numeric_format_cleaner.py \
--input data.jsonl \
--output cleaned.jsonl \
--field_rules '{"distance":{"target_unit":"m","decimal_places":2},"weight":{"target_unit":"kg","decimal_places":3}}' \
--conversion_rules '{"km::m":1000,"g::kg":0.001}' \
--stats_output stats.json
处理示例
12.345km→10000.00m1500g→1.500kg1234567.89→1,234,5680.0004567→4.57e-04N/A→ 按fill_null填充
输出示例
[OK] Numeric format cleaning completed
Total samples: 10
Samples with changes: 10
Total field changes: 64
Errors: 1
环境要求
- Python 3.10+
- 仅依赖标准库
注意事项
- 输入必须是 JSONL,且字段规则用 JSON 字符串传入。
fill_null只影响空值或 null-like 值,不会改动正常数值。- 只有字段规则命中的字段才会被处理。
mark_cleaned=True时,会在输出中追加清洗标记字段。