內容概述
csvkit 是一套用 Python 編寫的命令列工具集,專為處理 CSV(逗號分隔值)檔案而設計。
應用場景
csvkit 適用於各種需要處理 CSV 檔案的情境,例如:
- 將 Excel、JSON 或 SQL 資料轉換為 CSV 格式。
- 從大型 CSV 檔案中快速篩選、排序或合併資料。
- 在命令列中進行資料清理與分析,無需開啟試算表軟體。
- 將 CSV 資料轉換為 JSON 格式,以供其他應用程式使用。
技術特點
csvkit 提供多種功能強大的命令列工具,包括:
in2csv
:將 Excel、JSON、SQL 等格式轉換為 CSV。csvcut
:選取特定欄位。csvgrep
:根據條件篩選資料列。csvsort
:依指定欄位排序資料。csvjoin
:合併多個 CSV 檔案。csvstat
:顯示統計資訊,如欄位類型、最大值、最小值等。csvsql
:使用 SQL 查詢 CSV 資料,或將 CSV 匯入資料庫。
其他整合
csvkit 遵循 Unix 的哲學,每個工具專注於單一功能,並可透過管道(pipe)結合使用,形成強大的資料處理流程。例如:
Bash
in2csv data.xlsx | csvcut -c name,age | csvsort -c age | csvlook
上述指令將 Excel 檔案轉換為 CSV,選取 “name” 和 “age” 欄位,依年齡排序,並以表格形式顯示結果。
安裝步驟
在安裝 csvkit 前,請確保已安裝 Python 3。然後,在終端機中執行以下指令:
Bash
pip install csvkit
安裝完成後,即可使用 csvkit 提供的各種命令列工具。
存取和操作
以下是一些常用的 csvkit 指令範例:
1. 將 Excel 檔案轉換為 CSV:
Bash
in2csv data.xlsx > data.csv
2.選取特定欄位:
Bash
csvcut -c name,age data.csv
3. 篩選包含特定字串的資料列:
Bash
csvgrep -c name -m "Alice" data.csv
4. 依欄位排序:
Bash
csvsort -c age data.csv
5. 顯示統計資訊:
Bash
csvstat data.csv
6. 使用 SQL 查詢:
Bash
csvsql --query "SELECT name, age FROM data WHERE age > 30" data.csv
小技巧
- 若 CSV 檔案使用非逗號分隔符號,可使用
csvformat
轉換:csvformat -D ";" data.csv > new_data.csv
- 處理大型 CSV 檔案時,可使用
--snifflimit 0
關閉自動格式偵測,以提升效能。 - 結合 Unix 指令(如
head
、tail
)進行資料預覽:csvlook data.csv | head