CSVKit 是一个基于命令行的工具集,用于简化 CSV 文件的处理和管理。它提供了从数据转换、筛选、格式化到分析的全方位支持,特别适合需要处理复杂表格数据的用户。相比传统的 Excel 操作,CSVKit 更高效且功能更强大,非常适合数据分析师、数据科学家以及需要自动化数据处理的开发者使用。
⭕️宇宙起点
- 📦 安装 CSVKit
- ♨️ CSVKit 工具集详细介绍
- 1 `in2csv`:格式转换工具
- 2 `csvcut`:列选择工具
- 3 `csvgrep`:行过滤工具
- 4 `csvjoin`:按列合并工具
- 5 `csvstack`:按行拼接工具
- 6 `csvsql`:使用 SQL 查询 CSV 文件
- 7 `csvstat`:生成统计摘要
- 🙉 数据表格展示与格式化
- 🥇 高级技巧与案例展示
- 1 数据清理与去重
- 2 数据格式化
- 3 数据类型自动检测与数据库导入
- 📥 下载地址
- 💬 结语
- 📒 参考文献
📦 安装 CSVKit
要开始使用 CSVKit,首先需要安装该工具。以下是安装步骤:
pip install csvkit
安装完成后,可以使用以下命令查看所有工具的概览:
csvkit -h
该命令将列出 CSVKit 的所有子命令和基本说明,方便用户根据需求选择合适的工具。
♨️ CSVKit 工具集详细介绍
CSVKit 提供了多个独立的工具,每个工具都专注于不同的 CSV 文件操作任务。以下是每个主要工具的功能及使用示例。
1 in2csv
:格式转换工具
in2csv
可以将 Excel、JSON、SQL 数据库等多种文件格式转换为标准的 CSV 格式。
- Excel 转换为 CSV:
in2csv data.xlsx > data.csv
- 将 SQL 表格数据导出为 CSV:
in2csv --db "sqlite:///database.db" --table tablename > table.csv
- 将 JSON 转换为 CSV:
in2csv data.json > data.csv
2 csvcut
:列选择工具
csvcut
是一个用于查看和选择 CSV 文件列的工具,可以按照列名或列号进行操作。
- 查看列名:
csvcut -n data.csv
- 选择特定列:
csvcut -c "name","age" data.csv > selected_columns.csv
3 csvgrep
:行过滤工具
csvgrep
根据指定条件筛选 CSV 文件中的行,支持正则表达式匹配。
- 匹配包含指定内容的行:
csvgrep -c name -r "^Alice" data.csv > alice_data.csv
- 按条件筛选数据:
csvgrep -c "age" -r "^[3-4][0-9]$" data.csv > age_30_to_49.csv
4 csvjoin
:按列合并工具
csvjoin
可以按列合并多个 CSV 文件,类似 SQL 中的 JOIN 操作。
- 根据列 ID 进行合并:
csvjoin -c "id" file1.csv file2.csv > merged.csv
- 多键列合并:
csvjoin -c "id,name" file1.csv file2.csv > combined.csv
5 csvstack
:按行拼接工具
csvstack
用于将多个 CSV 文件按行拼接成一个文件,适合合并多个表格的数据。
- 按行拼接文件:
csvstack file1.csv file2.csv > stacked.csv
6 csvsql
:使用 SQL 查询 CSV 文件
csvsql
是 CSVKit 中最强大的工具,可以将 CSV 文件视为数据库表,并使用标准 SQL 语法进行数据分析。
- 简单 SQL 查询:
csvsql --query "SELECT * FROM data WHERE age > 30" data.csv > result.csv
- 跨文件查询:
csvsql --query "SELECT a.name, b.salary FROM data1 a JOIN data2 b ON a.id = b.id" data1.csv data2.csv
7 csvstat
:生成统计摘要
csvstat
可以快速生成 CSV 文件的统计摘要,包括最小值、最大值、平均值、唯一值数量等信息。
- 生成数据摘要:
csvstat data.csv
- 查看特定列统计:
csvstat --columns "salary" data.csv
🙉 数据表格展示与格式化
csvlook
可以将 CSV 文件以格式化的表格形式展示出来,方便查看数据。
- 将 CSV 格式化为表格:
csvlook data.csv
Name | Age | City | Salary |
---|---|---|---|
Alice | 28 | New York | 50000 |
Bob | 34 | Chicago | 60000 |
John | 45 | San Diego | 72000 |
此外,可以使用 csvjson
将 CSV 转换为 JSON 格式:
csvjson data.csv > data.json
🥇 高级技巧与案例展示
1 数据清理与去重
可以使用 csvclean
工具检测并去除 CSV 文件中的空白或重复行。
csvclean data.csv
2 数据格式化
使用 csvformat
改变 CSV 文件的分隔符、引号类型等格式。
- 将分隔符改为分号:
csvformat -D ";" data.csv > formatted.csv
3 数据类型自动检测与数据库导入
csvsql
可以自动检测 CSV 数据的类型并将其导入数据库,适合构建数据仓库或使用数据库工具进行进一步分析。
- 自动类型检测与导入:
csvsql --insert --db "sqlite:///example.db" data.csv
📥 下载地址
CSVKit 最新版 下载地址
💬 结语
CSVKit 是一个非常强大的 CSV 文件处理工具集。通过掌握其各种工具的使用,可以极大地提升 CSV 文件处理和分析的效率。无论是简单的数据转换、格式化还是复杂的 SQL 查询和数据整合,CSVKit 都能提供强大的支持。
📒 参考文献
- CSVKit 官网
- CSVKit GitHub仓库