Filtrando dados com csvkit

Processamento de Dados no Shell

Susan Sun

Data Person

O que significa filtrar dados?

Podemos criar um subconjunto do arquivo original de dados:

  1. Filtrando por coluna
  2. Filtrando por linha

csvcut: filtra dados pelo nome ou posição da coluna

csvgrep: filtra dados pelo valor da linha por correspondência exata, padrão ou até regex

Processamento de Dados no Shell

csvcut: filtrando por coluna

csvcut: filtra e trunca arquivos CSV por nome da coluna ou posição da coluna

Documentação:

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]
Processamento de Dados no Shell

csvcut: filtrando por coluna

Use a opção --names ou -n para listar todos os nomes de colunas em Spotify_MusicAttributes.csv.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Processamento de Dados no Shell

csvcut: filtrando por coluna

  1: track_id
  2: danceability
  3: duration_ms

Retorna a primeira coluna dos dados, por posição:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Processamento de Dados no Shell

csvcut: filtrando por coluna

  1: track_id
  2: danceability
  3: duration_ms

Retorna apenas a primeira coluna dos dados, por nome:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Processamento de Dados no Shell

csvcut: filtrando por coluna

  1: track_id
  2: danceability
  3: duration_ms

Retorna a segunda e a terceira colunas dos dados, por posição:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Processamento de Dados no Shell

csvcut: filtrando por coluna

  1: track_id
  2: danceability
  3: duration_ms

Retorna a segunda e a terceira colunas dos dados, por nome:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Processamento de Dados no Shell

csvgrep: filtrando por valor de linha

csvgrep:

  • filtra por linha usando correspondência exata ou fuzzy com regex
  • deve ser usado com uma destas opções:

-m: seguido do valor exato da linha para filtrar

-r: seguido de um padrão regex

-f: seguido do caminho para um arquivo

Documentação:

csvgrep -h
Processamento de Dados no Shell

csvgrep: filtrando por valor de linha

Encontre em Spotify_Popularity.csv onde 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
Processamento de Dados no Shell

Vamos filtrar dados com csvkit!

Processamento de Dados no Shell

Preparing Video For Download...