在 Shell 中進行資料處理
Susan Sun
Data Person
csvkit:
使用 Python 套件管理工具 pip 安裝 csvkit:
pip install csvkit
將 csvkit 升級到最新版本:
pip install --upgrade csvkit
完整說明:
線上文件:
https://csvkit.readthedocs.io/en/latest/scripts/in2csv.html
指令列說明文件:
in2csv --helpin2csv -h
usage: in2csv [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
[-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-L LOCALE]
[-S] [--blanks] [--date-format DATE_FORMAT]
[--datetime-format DATETIME_FORMAT] [-H] [-K SKIP_LINES] [-v]
語法:
in2csv SpotifyData.xlsx > SpotifyData.csv
將 Excel 的第一個工作表輸出到主控台,不會儲存
in2csv SpotifyData.xlsx
> 重新導向輸出,並另存為 SpotifyData.csv 檔案
> SpotifyData.csv
使用 --names 或 -n 列出 SpotifyData.xlsx 的所有工作表名稱。
in2csv -n SpotifyData.xlsx
Worksheet1_Popularity
Worksheet2_MusicAttributes
使用 --sheet 並指定要轉換的工作表 "Worksheet1_Popularity"。
in2csv SpotifyData.xlsx --sheet "Worksheet1_Popularity" > Spotify_Popularity.csv
in2csv 不會在主控台列印記錄。
in2csv SpotifyData.xlsx --sheet "Worksheet1_Popularity" > Spotify_Popularity.csv
基本檢查:
ls
SpotifyData.xlsx Spotify_Popularity.csv backup bin
csvlook:以與 Markdown 相容的等寬格式,將 CSV 呈現在指令列
說明文件:
csvlook -h
usage: csvlook [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
[-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-L LOCALE]
[-S] [--blanks] [--date-format DATE_FORMAT]
語法:
csvlook Spotify_Popularity.csv
| track_id | popularity |
| ---------------------- | ---------- |
| 118GQ70Sp6pMqn6w1oKuki | 7 |
| 6S7cr72a7a8RVAXzDCRj6m | 7 |
| 7h2qWpMJzIVtiP30E8VDW4 | 7 |
| 3KVQFxJ5CWOcbxdpPYdi4o | 7 |
| 0JjNrI1xmsTfhaiU1R6OVc | 7 |
| 3HjTcZt29JUHg5m60QhlMw | 7 |
csvstat:對 CSV 各欄位輸出描述性統計(如平均數、中位數、唯一值數)
說明文件:
csvstat -h
usage: csvstat [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
[-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H]
[-K SKIP_LINES] [-v] [-l] [--zero] [-V] [--csv] [-n]
語法:
csvstat Spotify_Popularity.csv
1. "track_id"
Type of data: Text
Contains null values: False
Unique values: 24
Longest value: 22 characters
Most common values: 118GQ70Sp6pMqn6w1oKuki (1x)
6S7cr72a7a8RVAXzDCRj6m (1x)
在 Shell 中進行資料處理