QC12_ConstantFieldCheck 恒定字段一致性检查Skill
功能概述
本skill用于检查当特定字段(恒定字段)的值相同时,其他指定字段(差异字段)是否存在多个不同的值。如果存在不一致,则标记为异常数据。
触发条件
当用户请求以下任务时,应使用此skill:
- 恒定字段检查
- 字段一致性检查
- 分组内差异检查
- 检查分组内字段是否一致
- 检查相同条件下的字段是否相同
处理逻辑
- 读取输入的被检验数据
- 解析恒定字段列表和差异字段列表
- 按恒定字段进行分组
- 检查每个分组内差异字段的唯一值数量
- 如果差异字段存在多个不同值,标记该分组的所有数据为异常
- 为异常数据添加质控标识
- 输出处理后的数据文件
支持的文件格式
- CSV (.csv)
- TSV (.tsv)
- Excel (.xls, .xlsx)
- SPSS (.sav)
使用方法
步骤1:获取用户输入输出路径及参数
向用户确认:
- 输入文件路径
- 输出文件路径
- 恒定字段名(逗号分隔,按这些字段进行分组)
- 差异字段名(逗号分隔,检查这些字段是否存在不一致)
- 质控标识
- 质控标识字段名(默认:QC0000)
- 唯一ID字段名(默认:ID0000)
步骤2:执行恒定字段一致性检查脚本
在 scripts/ 目录下找到 QC12_ConstantFieldCheck.py,使用Python执行:
python scripts/QC12_ConstantFieldCheck.py \
--input_path <输入文件> \
--output_path <输出文件> \
--constantFieldsNames "<恒定字段>" \
--diffFieldsNames "<差异字段>" \
--QcMark "<质控标识>" \
--markFieldName <质控字段名> \
--idFieldName <ID字段名>
步骤3:返回结果
告知用户处理完成。
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
--input_path |
是 | 输入文件路径 |
--output_path |
是 | 输出文件路径 |
--constantFieldsNames |
是 | 恒定字段,逗号分隔(如:field1,field2) |
--diffFieldsNames |
是 | 差异字段,逗号分隔(如:field3,field4) |
--QcMark |
是 | 质控标识 |
--markFieldName |
否 | 质控标识字段名,默认QC0000 |
--idFieldName |
否 | 唯一ID字段名,默认ID0000 |
使用示例
假设有以下数据:
| ID | region | type | value |
|---|---|---|---|
| 1 | A | 1 | 100 |
| 2 | A | 1 | 200 |
| 3 | B | 2 | 150 |
如果设置:
- 恒定字段:region
- 差异字段:value
则检查结果:region=A的分组中,value有100和200两个不同值,存在不一致,标记为异常。
输出示例
[OK] Using encoding GB2312 successfully read CSV file
Successfully read file: /path/to/input.csv, shape: (1000, 18)
Processing completed! Output saved to: /path/to/output.csv
注意事项
- 恒定字段用于数据分组,相同值的记录被分为一组
- 检查差异字段在同一分组内是否存在多个不同的值
- 如果分组内差异字段存在多个不同值,该分组的所有记录都会被标记为异常
- 质控标识会追加到原有的质控标识字段中,用分号分隔