data_type_check
Inspects each column in a dataset to detect data types (numeric, integer, date, category, text, mixed, missing) and reports validity, missingness, and dirty values, revealing data quality issues.
Instructions
data_type_check —— 数据探查组 · 列类型识别(工具 2,核心实现)。
docstring = agent 使用说明书,与 statlab_mcp/docs/design/01_data_exploration_batch1.md 同步维护。
参数: file_path (str): 本地数据文件(csv/tsv/xlsx/json),仅接受本地路径(拒绝 UNC)
返回: 成功 {"status":"ok","result":{...},"summary":"一句话中文结论"} 失败 {"status":"error","message":"中文原因"} result: {n_rows, n_columns, columns: {<列名>: {detected_type, n_valid, n_missing, dirty_count, note}}, issue_summary: {mixed_columns, fully_missing_columns, invalid_date_columns}}
判定树(确定性代码;实现期修订 vs 设计文档:数值先于日期,防 "123" 被 to_datetime 误认成日期;mixed 定义 = 数值或日期转换成功数在 (0, 95%) 区间,全部失败则按 category/text 处理): 1. 全缺失列 → missing(不参与任何转换) 2. pandas 数值 dtype → numeric;值全为整数 → integer 3. object 列先试 to_numeric(errors="coerce"):成功 ≥95% → numeric (有失配时 dirty_count=失败数,note 给脏值示例;全成功且全整数 → integer) 4. 未过数值,再试 to_datetime(errors="coerce"):成功 ≥95% → date (失配 = 非法日期,如 2024-02-30,记 dirty_count 并在 note 列示例) 5. 部分可转(成功数在 (0, 95%))→ mixed(两种转换都失败的值 = 脏值) 6. 完全不可转:唯一值 ≤ min(50, 行数×20%) → category(note 给 top3) 否则 → text
示例: data_type_check("samples/dirty.csv") inline 数据: 本工具支持可选 inline_data 参数(v1.2.0 起):与 file_path 二选一, 支持 records 数组或 {"header": [...], "rows": [[...], ...]} 对象两种形态; 规模上限/类型域/data_source 来源标注见 statlab_mcp/docs/SPEC.md 第 12 节。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | ||
| inline_data | No |