Filtrera data med csvkit

Databehandling i kommandoraden

Susan Sun

Data Person

Vad innebär det att filtrera data?

Vi kan skapa en delmängd av den ursprungliga datafilen genom att:

  1. Filtrera data per kolumn
  2. Filtrera data per rad

csvcut: filtrerar data efter kolumnnamn eller position

csvgrep: filtrerar data efter radvärde via exakt matchning, mönstermatchning eller regex

Databehandling i kommandoraden

csvcut: filtrera data per kolumn

csvcut: filtrerar och trimmar CSV-filer efter kolumnnamn eller kolumnposition

Dokumentation:

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]
Databehandling i kommandoraden

csvcut: filtrera data per kolumn

Använd flaggan --names eller -n för att skriva ut alla kolumnnamn i Spotify_MusicAttributes.csv.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Databehandling i kommandoraden

csvcut: filtrera data per kolumn

  1: track_id
  2: danceability
  3: duration_ms

Returnerar den första kolumnen i datan, efter position:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Databehandling i kommandoraden

csvcut: filtrera data per kolumn

  1: track_id
  2: danceability
  3: duration_ms

Returnerar enbart den första kolumnen i datan, efter namn:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Databehandling i kommandoraden

csvcut: filtrera data per kolumn

  1: track_id
  2: danceability
  3: duration_ms

Returnerar den andra och tredje kolumnen i datan, efter position:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Databehandling i kommandoraden

csvcut: filtrera data per kolumn

  1: track_id
  2: danceability
  3: duration_ms

Returnerar den andra och tredje kolumnen i datan, efter namn:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Databehandling i kommandoraden

csvgrep: filtrera data efter radvärde

csvgrep:

  • filtrerar efter rad med exakt matchning eller regex-matchning
  • måste kombineras med ett av dessa alternativ:

-m: följt av det exakta radvärdet att filtrera på

-r: följt av ett regex-mönster

-f: följt av sökvägen till en fil

Dokumentation:

csvgrep -h
Databehandling i kommandoraden

csvgrep: filtrera data efter radvärde

Hitta rader i Spotify_Popularity.csv där 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
Databehandling i kommandoraden

Nu kör vi en övning!

Databehandling i kommandoraden

Preparing Video For Download...