Filtrar datos con csvkit

Procesamiento de datos en Shell

Susan Sun

Data Person

¿Qué significa filtrar datos?

Podemos crear un subconjunto del archivo original:

  1. Filtrando por columna
  2. Filtrando por fila

csvcut: filtra por nombre o posición de columna

csvgrep: filtra por valor de fila con coincidencia exacta, patrones o regex

Procesamiento de datos en Shell

csvcut: filtrar por columna

csvcut: filtra y recorta CSV por nombre o posición de columna

Documentación:

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]
Procesamiento de datos en Shell

csvcut: filtrar por columna

Usa la opción --names o -n para mostrar todos los nombres de columnas en Spotify_MusicAttributes.csv.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Procesamiento de datos en Shell

csvcut: filtrar por columna

  1: track_id
  2: danceability
  3: duration_ms

Devuelve la primera columna por posición:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Procesamiento de datos en Shell

csvcut: filtrar por columna

  1: track_id
  2: danceability
  3: duration_ms

Devuelve solo la primera columna por nombre:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Procesamiento de datos en Shell

csvcut: filtrar por columna

  1: track_id
  2: danceability
  3: duration_ms

Devuelve la segunda y tercera columna por posición:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Procesamiento de datos en Shell

csvcut: filtrar por columna

  1: track_id
  2: danceability
  3: duration_ms

Devuelve la segunda y tercera columna por nombre:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Procesamiento de datos en Shell

csvgrep: filtrar por valor de fila

csvgrep:

  • filtra por fila con coincidencia exacta o regex
  • debe ir con una de estas opciones:

-m: seguido del valor exacto a filtrar

-r: seguido de un patrón regex

-f: seguido de la ruta a un archivo

Documentación:

csvgrep -h
Procesamiento de datos en Shell

csvgrep: filtrar por valor de fila

Busca en Spotify_Popularity.csv donde 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
Procesamiento de datos en Shell

¡Vamos a practicar!

Procesamiento de datos en Shell

Preparing Video For Download...