CSV Data Wrangler 是一个面向 CSV 文件处理、解析和数据清洗的技能,使用 Python、DuckDB 和命令行工具,专注于表格数据工作流中的大文件、编码问题、畸形数据和性能优化。
用途
该技能提供高效的 CSV 文件处理、数据清洗和转换方面的专业能力,适用于需要处理表格数据的场景。
何时使用
适合在以下情况调用:高效处理大型 CSV 文件;清洗和校验 CSV 数据;转换和重塑数据集;处理编码和分隔符问题;合并或拆分 CSV 文件;在表格格式之间转换;使用 SQL(DuckDB)查询 CSV。
不适用场景
以下情况不应调用该技能:构建带格式的 Excel 文件(应使用 xlsx-skill);对数据进行统计分析(应使用 data-analyst);构建数据管道(应使用 data-engineer);数据库操作(应使用 sql-pro)。
工具选择决策框架
按文件大小选择工具:小于 100MB 使用 pandas;100MB 至 1GB 使用 pandas 分块读取或 polars;1GB 至 10GB 使用 DuckDB 或 polars;大于 10GB 使用 DuckDB、Spark 或流式处理;快速探索使用 csvkit 或 xsv 命令行工具。
按处理类型选择工具:类 SQL 查询使用 DuckDB;复杂转换使用 pandas 或 polars;简单过滤使用 csvkit 或 xsv;流式处理使用 Python csv 模块。
核心工作流
-
大型 CSV 处理:分析文件特征(大小、编码、分隔符);根据规模选择合适工具;内存受限时分块处理;处理编码问题(UTF-8、Latin-1);按列校验数据类型;输出时使用正确的引号。
-
数据清洗管道:加载样本以理解结构;识别缺失和畸形值;为每列定义清洗规则;应用转换;校验输出质量;记录清洗统计信息。
-
使用 DuckDB 查询 CSV:将 DuckDB 指向 CSV 文件;让 DuckDB 推断模式;直接编写 SQL 查询;将结果导出为新的 CSV;可选持久化为 Parquet。
最佳实践
始终显式指定编码;对大文件使用分块读取;选择工具前先分析文件;保留原始文件,写入新文件;校验处理前后的行数;正确处理带引号的字段和转义。
反模式
将全部数据加载到内存会导致大文件 OOM,应使用分块或流式处理;猜测编码会导致字符损坏,应先用 chardet 检测;忽略引号处理会破坏字段解析,应使用正确的 CSV 解析器;不做校验会导致静默的数据损坏,应校验行列数;手动字符串拆分会在边界情况出错,应使用 csv 模块或 pandas。
限制
该技能资料未提供具体安装命令、价格、平台支持范围或实际效果数据,这些信息暂未提供。