csvkitのはじめ方

シェルでのデータ処理

Susan Sun

Data Person

csvkitとは

csvkit:

  • コマンドラインツール群
  • Wireservice により Python で開発
  • CSVの処理・クリーニング機能を提供
  • Python、R、SQL に匹敵するデータ機能
  • ドキュメント: https://csvkit.readthedocs.io/en/latest/
シェルでのデータ処理

csvkitのインストール

Pythonのパッケージマネージャ pip で csvkit をインストール:

pip install csvkit

csvkit を最新にアップグレード:

pip install --upgrade csvkit

詳細手順:

https://csvkit.readthedocs.io/en/latest/tutorial.html.

シェルでのデータ処理

csvkitマニュアルを閲覧する

シェルでのデータ処理

in2csv: ファイルをCSVへ変換

【Webドキュメント】

https://csvkit.readthedocs.io/en/latest/scripts/in2csv.html

【コマンドラインのヘルプ】

in2csv --help

in2csv -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: ファイルをCSVへ変換

【構文】

in2csv SpotifyData.xlsx > SpotifyData.csv

Excelの最初のシートをコンソールに出力し、保存はしません

in2csv SpotifyData.xlsx

> は出力をリダイレクトし、新規ファイル SpotifyData.csv として保存します

> SpotifyData.csv
シェルでのデータ処理

in2csv: ファイルを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: ファイルをCSVへ変換

in2csv はコンソールにログを出力しません。

in2csv SpotifyData.xlsx --sheet "Worksheet1_Popularity" > Spotify_Popularity.csv

動作確認:

ls
SpotifyData.xlsx  Spotify_Popularity.csv  backup  bin
シェルでのデータ処理

csvlook: コマンドラインでのデータプレビュー

csvlook: CSVをMarkdown互換の固定幅形式でコマンドライン表示

【ドキュメント】

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: コマンドラインでのデータプレビュー

【構文】

csvlook Spotify_Popularity.csv
| track_id               | popularity |
| ---------------------- | ---------- |
| 118GQ70Sp6pMqn6w1oKuki |          7 |
| 6S7cr72a7a8RVAXzDCRj6m |          7 |
| 7h2qWpMJzIVtiP30E8VDW4 |          7 |
| 3KVQFxJ5CWOcbxdpPYdi4o |          7 |
| 0JjNrI1xmsTfhaiU1R6OVc |          7 |
| 3HjTcZt29JUHg5m60QhlMw |          7 |
シェルでのデータ処理

csvstat: CSVデータの記述統計

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: CSVデータの記述統計

【構文】

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)
シェルでのデータ処理

csvkitを試してみましょう

シェルでのデータ処理

Preparing Video For Download...