Фільтрування даних за допомогою csvkit

Опрацювання даних у Shell

Susan Sun

Data Person

Що означає фільтрувати дані?

Можна створити підмножину початкового файла даних так:

  1. Фільтрувати дані за стовпцями
  2. Фільтрувати дані за рядками

csvcut: фільтрує дані за назвою або позицією стовпця

csvgrep: фільтрує дані за значенням рядка через точну відповідність, пошук за шаблоном або regex

Опрацювання даних у Shell

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]
Опрацювання даних у Shell

csvcut: фільтрування даних за стовпцем

Скористайтеся параметром --names або -n, щоб вивести всі назви стовпців у Spotify_MusicAttributes.csv.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Опрацювання даних у Shell

csvcut: фільтрування даних за стовпцем

  1: track_id
  2: danceability
  3: duration_ms

Повертає перший стовпець даних за позицією:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Опрацювання даних у Shell

csvcut: фільтрування даних за стовпцем

  1: track_id
  2: danceability
  3: duration_ms

Повертає лише перший стовпець даних за назвою:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Опрацювання даних у Shell

csvcut: фільтрування даних за стовпцем

  1: track_id
  2: danceability
  3: duration_ms

Повертає другий і третій стовпці даних за позицією:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Опрацювання даних у Shell

csvcut: фільтрування даних за стовпцем

  1: track_id
  2: danceability
  3: duration_ms

Повертає другий і третій стовпці даних за назвою:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Опрацювання даних у Shell

csvgrep: фільтрування за значенням рядка

csvgrep:

  • фільтрує за рядками через точну відповідність або нечіткий пошук regex
  • потрібно поєднувати з одним із параметрів:

-m: далі вкажіть точне значення рядка для фільтрації

-r: далі вкажіть regex-шаблон

-f: далі вкажіть шлях до файла

Документація:

csvgrep -h
Опрацювання даних у Shell

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
Опрацювання даних у Shell

Попрактикуймося у фільтруванні даних з csvkit!

Опрацювання даних у Shell

Preparing Video For Download...