Data filteren met csvkit

Gegevens verwerken in de Shell

Susan Sun

Data Person

Wat betekent data filteren?

We kunnen een subset van het bronbestand maken door:

  1. Filteren op kolom
  2. Filteren op rij

csvcut: filtert via kolomnaam of -positie

csvgrep: filtert op rijwaarde via exacte match, patroon of regex

Gegevens verwerken in de Shell

csvcut: filteren op kolom

csvcut: filtert en verkort CSV’s op kolomnaam of kolompositie

Documentatie:

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]
Gegevens verwerken in de Shell

csvcut: filteren op kolom

Gebruik de optie --names of -n om alle kolomnamen in Spotify_MusicAttributes.csv te tonen.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Gegevens verwerken in de Shell

csvcut: filteren op kolom

  1: track_id
  2: danceability
  3: duration_ms

Geeft de eerste kolom terug, op positie:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Gegevens verwerken in de Shell

csvcut: filteren op kolom

  1: track_id
  2: danceability
  3: duration_ms

Geeft alleen de eerste kolom terug, op naam:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Gegevens verwerken in de Shell

csvcut: filteren op kolom

  1: track_id
  2: danceability
  3: duration_ms

Geeft de tweede en derde kolom terug, op positie:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Gegevens verwerken in de Shell

csvcut: filteren op kolom

  1: track_id
  2: danceability
  3: duration_ms

Geeft de tweede en derde kolom terug, op naam:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Gegevens verwerken in de Shell

csvgrep: filteren op rijwaarde

csvgrep:

  • filtert per rij met exacte match of regex-patroon
  • moet gecombineerd worden met een van deze opties:

-m: gevolgd door de exacte rijwaarde

-r: gevolgd door een regex-patroon

-f: gevolgd door het pad naar een bestand

Documentatie:

csvgrep -h
Gegevens verwerken in de Shell

csvgrep: filteren op rijwaarde

Zoek in Spotify_Popularity.csv waar 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
Gegevens verwerken in de Shell

Laten we filteren met csvkit!

Gegevens verwerken in de Shell

Preparing Video For Download...