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 中的数据处理