Daten filtern mit csvkit

Datenverarbeitung in der Shell

Susan Sun

Data Person

Was bedeutet Daten filtern?

Wir können einen Teil des Original-Dokuments erstellen, indem wir:

  1. nach Spalten filtern
  2. nach Zeilen filtern

csvcut: filtert Daten nach Spaltenname oder -position

csvgrep: filtert Daten nach Zeilenwert per exakter Übereinstimmung, Musterabgleich oder sogar Regex

Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

csvcut: filtert und kürzt CSV-Dateien nach Spaltenname oder Spaltenposition

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]
Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

Verwende die Option --names oder -n, um alle Spaltennamen in Spotify_MusicAttributes.csv auszugeben.

csvcut -n Spotify_MusicAttributes.csv
  1: track_id
  2: danceability
  3: duration_ms
Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

  1: track_id
  2: danceability
  3: duration_ms

Gibt die erste Spalte nach Position zurück:

csvcut -c 1 Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

  1: track_id
  2: danceability
  3: duration_ms

Gibt nur die erste Spalte nach Name zurück:

csvcut -c "track_id" Spotify_MusicAttributes.csv
track_id
118GQ70Sp6pMqn6w1oKuki
6S7cr72a7a8RVAXzDCRj6m
Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

  1: track_id
  2: danceability
  3: duration_ms

Gibt die zweite und dritte Spalte nach Position zurück:

csvcut -c 2,3 Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Datenverarbeitung in der Shell

csvcut: nach Spalte filtern

  1: track_id
  2: danceability
  3: duration_ms

Gibt die zweite und dritte Spalte nach Name zurück:

csvcut -c "danceability","duration_ms" Spotify_MusicAttributes.csv
danceability,duration_ms
0.787,124016.0
0.777,128016.0
0.795999999999999,132742.0
Datenverarbeitung in der Shell

csvgrep: nach Zeilenwert filtern

csvgrep:

  • filtert nach Zeile per exakter Übereinstimmung oder unscharf mit Regex
  • muss mit einer dieser Optionen verwendet werden:

-m: gefolgt vom exakten Zeilenwert zum Filtern

-r: gefolgt von einem Regex-Muster

-f: gefolgt vom Pfad zu einer Datei

Dokumentation:

csvgrep -h
Datenverarbeitung in der Shell

csvgrep: nach Zeilenwert filtern

Finde in Spotify_Popularity.csv, wo 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
Datenverarbeitung in der Shell

Lass uns mit csvkit Daten filtern!

Datenverarbeitung in der Shell

Preparing Video For Download...