csvkit でデータをフィルタリングする

シェルでのデータ処理

Susan Sun

Data Person

データをフィルタリングするとは?

元データからサブセットを作る方法:

  1. 列でフィルタリング
  2. 行でフィルタリング

csvcut: 列名または位置でデータを抽出

csvgrep: 行の値で抽出(完全一致・パターン・正規表現)

シェルでのデータ処理

csvcut: 列でフィルタリング

csvcut: 列名または列位置でCSVを抽出・切り詰め

ドキュメント:

csvcut -h
usage: csvcut [-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] [-n] [-c COLUMNS]
シェルでのデータ処理

csvcut: 列でフィルタリング

--names または -n オプションで Spotify_MusicAttributes.csv の全列名を表示

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
シェルでのデータ処理

csvcut: 列でフィルタリング

  1: track_id
  2: danceability
  3: duration_ms

列の位置で1列目のみを抽出:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
シェルでのデータ処理

csvcut: 列でフィルタリング

  1: track_id
  2: danceability
  3: duration_ms

列の名前で1列目のみを抽出:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
シェルでのデータ処理

csvcut: 列でフィルタリング

  1: track_id
  2: danceability
  3: duration_ms

列の位置で2列目と3列目を抽出:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
シェルでのデータ処理

csvcut: 列でフィルタリング

  1: track_id
  2: danceability
  3: duration_ms

列の名前で2列目と3列目を抽出:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
シェルでのデータ処理

csvgrep: 行の値でフィルタリング

csvgrep:

  • 正確一致または正規表現で行を抽出
  • 次のいずれかのオプションが必須:

-m: 抽出する行の値(完全一致)

-r: 正規表現パターン

-f: 値を含むファイルへのパス

ドキュメント:

csvgrep -h
シェルでのデータ処理

csvgrep: 行の値でフィルタリング

Spotify_Popularity.csv で track_id = 5RCPsfzmEpTXMCTNk7wEfQ を検索

csvgrep -c "track_id" -m 5RCPsfzmEpTXMCTNk7wEfQ Spotify_Popularity.csv
track_id,popularity
5RCPsfzmEpTXMCTNk7wEfQ,7.0
csvgrep -c 1 -m 5RCPsfzmEpTXMCTNk7wEfQ Spotify_Popularity.csv
track_id,popularity
5RCPsfzmEpTXMCTNk7wEfQ,7.0
シェルでのデータ処理

csvkit でデータを絞り込んでみましょう!

シェルでのデータ処理

Preparing Video For Download...