csvkit:終極 CSV 命令列工具包,讓資料處理更輕鬆

內容概述

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 指令(如 headtail)進行資料預覽:
    csvlook data.csv | head

教學影片

參考連結

返回頂端