qsv 终端 CSV 数据配置清理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_3c6cb52e/profile-and-clean-large-csv-datasets-from-the-terminal-with-qsv 到 AI 助手。
技能介绍
要解决什么问题
一份几百 MB 的 CSV 直接丢进下游分析或自动化流程,最常见的翻车方式有两种:一是编码或分隔符和预期不一致,导入时才发现整列解析错位;二是字段里混着空值、异常值和格式不一致的脏数据,模型跑完才发现结论不可靠。等到数据已经进了数据库或数据管线,再回头排查的成本远高于导入前做一轮体检。这个技能解决的就是导入前的检查与清洗环节——在终端里快速完成对大型 CSV 的体检、画像、规范化和差异比对,确认数据可用后再交给下游。
技能如何工作
核心工具是 qsv,一个为命令行环境设计的 CSV 处理套件。整体流程分为三个阶段:
- 检查与画像(Inspect & Profile):对 CSV 做结构层面的体检,查看列名、类型推断、缺失值分布,并通过
stats等命令输出基础统计摘要,快速判断这份数据是否「长得和预期一样」。 - 深度统计(Extended Stats):在基础摘要之上,可用
moarstats追加多达 55 项统计指标,包括扩展的离群点检测、稳健统计和双变量统计,适合需要更严格数据质量评估的场景。 - 清洗与转换(Normalize & Transform):对字段做规范化处理。需要基于行计算时,可用
py对每一行求值 Python 表达式,生成计算列或按条件过滤行;更复杂的多列计算、聚合逻辑则交给luau,它支持同时生成多个计算列并构建复杂表达式。 - 差异比对(Diff):当需要确认两份 CSV 之间的变更时,直接在终端比较文件差异,适合版本迭代或数据源替换后的数据一致性核验。
适用边界与注意点
这个技能的定位是数据加载前的守门员,而不是完整的 ETL 框架。几点需要注意:
- 它只负责终端侧的检查、画像、清洗和比对,后续的入库、调度、报表仍需要你自己的管线承接。
py和luau的能力依赖于对应表达式语言的语义,编写行级表达式前先确认字段类型和 NULL 的处理方式,避免隐式转换带来的误判。- 统计命令对超大文件的输出体积和内存占用要自行评估,建议先用抽样或条件过滤缩小数据范围再跑深度统计。
- 不同
qsv命令集(如 stats、moarstats、py、luau)的支持情况取决于所安装的qsv发行版配置,遇到命令缺失时先查阅官方文档确认对应功能集。
使用场景
- 拿到来源不明的数百 MB CSV,要在导入数据库前确认编码、分隔符和列类型是否与预期一致
- 两份 CSV 是相邻两日的全量数据快照,需快速定位新增、变更或缺失的记录
- 日期列混杂多种格式写法,需逐行求值统一转换,并过滤掉转换失败的异常行
- 已有一份基础统计摘要,需追加离群点检测等深度指标用于数据质量评估
适合人员
- 数据分析工程师:每周处理多份上游导出的 CSV,入库前需要快速判断数据质量
- 数据管线工程师:在搭建 ETL 前需要把 CSV 检查与清洗步骤固化为可脚本化命令
- 使用大型公共数据集的研究者:下载原始 CSV 后先做画像与清洗再开始分析
- 平台运维工程师:编写数据导入脚本前需要核对字段类型并对新旧 CSV 做 diff 验证