Фильтрация данных с помощью 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

Возвращает первый столбец по позиции:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Обработка данных в командной строке

csvcut: фильтрация данных по столбцу

  1: track_id
  2: danceability
  3: duration_ms

Возвращает только первый столбец по имени:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Обработка данных в командной строке

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
Обработка данных в командной строке

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
Обработка данных в командной строке

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
Обработка данных в командной строке

Давайте потренируемся!

Обработка данных в командной строке

Preparing Video For Download...