Filtrare dati con csvkit

Elaborazione dei dati in Shell

Susan Sun

Data Person

Cosa significa filtrare i dati?

Possiamo creare un sottoinsieme del file originale:

  1. Filtrando per colonna
  2. Filtrando per riga

csvcut: filtra per nome o posizione di colonna

csvgrep: filtra per valore di riga con match esatto, pattern o regex

Elaborazione dei dati in Shell

csvcut: filtra per colonna

csvcut: filtra e tronca file CSV per nome colonna o posizione colonna

Documentazione:

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]
Elaborazione dei dati in Shell

csvcut: filtra per colonna

Usa l’opzione --names o -n per stampare tutti i nomi colonna in Spotify_MusicAttributes.csv.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Elaborazione dei dati in Shell

csvcut: filtra per colonna

  1: track_id
  2: danceability
  3: duration_ms

Restituisce la prima colonna per posizione:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Elaborazione dei dati in Shell

csvcut: filtra per colonna

  1: track_id
  2: danceability
  3: duration_ms

Restituisce solo la prima colonna per nome:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Elaborazione dei dati in Shell

csvcut: filtra per colonna

  1: track_id
  2: danceability
  3: duration_ms

Restituisce la seconda e terza colonna per posizione:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Elaborazione dei dati in Shell

csvcut: filtra per colonna

  1: track_id
  2: danceability
  3: duration_ms

Restituisce la seconda e terza colonna per nome:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Elaborazione dei dati in Shell

csvgrep: filtra per valore di riga

csvgrep:

  • filtra per riga con corrispondenza esatta o regex
  • va usato con una di queste opzioni:

-m: seguito dal valore esatto da filtrare

-r: seguito da un pattern regex

-f: seguito dal percorso di un file

Documentazione:

csvgrep -h
Elaborazione dei dati in Shell

csvgrep: filtra per valore di riga

Trova in Spotify_Popularity.csv dove 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
Elaborazione dei dati in Shell

Filtriamo i dati con csvkit!

Elaborazione dei dati in Shell

Preparing Video For Download...