qsv:一款高性能的CSV数据处理工具
qsv 是一款免费开源、高性能的表格数据(CSV、Excel、TSV 等)处理工具,提供了数据查询、切片、索引、分析、过滤、转换、排序、验证、连接、以及格式化等功能。
qsv 使用 Rust 语言开发,遵循 MIT 开源协议,源代码托管在 GitHub:
https://github.com/dathere/qsv
功能特性
- 跨平台:支持 Linux、macOS 以及 Windows 操作系统。
- 超高性能:使用 Rust 和 Polars 编写,能够充分利用现代 CPU 的并行处理能力、索引、缓存以及流式处理等优化方式,对于大型文件(GB 甚至更大)的处理速度通常远超传统脚本(例如 Python pandas)或其他命令行工具(例如 awk、sed)。
- 功能丰富:超过 50 个数据处理命令,包括 apply、cat、count、datefmt、diff、edit、excel、explode、fetch、foreach、join、json、luau、pivotp、select、slice、sort、sqlp、to、transpose 等。
- 简单易用:采用了逻辑清晰的子命令结构和详细的帮助文档。例如,命令
qsv count data.csv
用于统计行数。另外,qsv pro 版本提供了图形化的操作界面,适合非技术人员。 - 工作流管道:可以将多个命令或者操作系统命令组合使用,构建复杂的数据处理流程。例如,命令
qsv stats data.csv | qsv table
用于分析每列的统计信息(数据类型、最大值、最小值、标准差等),并且以整齐的表格形式进行展示。
在线体验
qsv 提供了一个在线数据处理环境,网址如下:
https://qsv.dathere.com/web
该页面为一些常用的数据操作提供了图形化的界面,不需要编写代码就可以使用。
下载安装
qsv 官方网站提供了各种平台的安装文件:
安装完成之后,可以将文件目录添加到系统环境变量 PATH 中,方便调用相关命令。
qsv --listInstalled commands (60):apply Apply series of transformations to a columnbehead Drop header from CSV filecat Concatenate by row or columncount Count recordsdatefmt Format date/datetime stringsdedup Remove redundant rowsdescribegpt Infer extended metadata using a LLMdiff Find the difference between two CSVsedit Replace a cell's value specified by row and columnenum Add a new column enumerating CSV linesexcel Exports an Excel sheet to a CSV...
总结
qsv 是一个为现代数据工作流打造的高效命令行数据处理工具,尤其适合大型结构化的表格数据处理,它完美地填补了简单文本处理工具(grep/awk)和重型编程语言(Python/R)之间的空白。