Data Science - Datenaufbereitung


Vor der Analyse von Daten muss ein Data Scientist die Daten extrahieren und sie sauber und wertvoll machen.


Extrahieren und lesen Sie Daten mit Pandas

Bevor Daten analysiert werden können, müssen sie importiert/extrahiert werden.

Im folgenden Beispiel zeigen wir Ihnen, wie Sie Daten mit Pandas in Python importieren.

Wir verwenden die read_csv()Funktion zum Importieren einer CSV-Datei mit den Gesundheitsdaten:

Beispiel

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)

Beispiel erklärt

  • Importieren Sie die Pandas-Bibliothek
  • Benennen Sie den Datenrahmen als health_data.
  • header=0 bedeutet, dass die Überschriften für die Variablennamen in der ersten Zeile zu finden sind (beachten Sie, dass 0 die erste Zeile in Python bedeutet)
  • sep=","bedeutet, dass "," als Trennzeichen zwischen den Werten verwendet wird. Dies liegt daran, dass wir den Dateityp .csv (Comma Separated Values) verwenden.

Tipp: Wenn Sie eine große CSV-Datei haben, können Sie die head()Funktion verwenden, um nur die obersten 5 Zeilen anzuzeigen:

Beispiel

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())

Datenreinigung

Sehen Sie sich die importierten Daten an. Wie Sie sehen können, sind die Daten mit falschen oder nicht registrierten Werten „dreckig“:

Schmutzige Daten
  • Es gibt einige leere Felder
  • Durchschnittspuls von 9 000 ist nicht möglich
  • 9 000 wird aufgrund des Leerzeichens als nicht numerisch behandelt
  • Eine Beobachtung des maximalen Pulses wird als "AF" bezeichnet, was keinen Sinn ergibt

Wir müssen also die Daten bereinigen, um die Analyse durchzuführen.


Leere Zeilen entfernen

Wir sehen, dass sich die nicht numerischen Werte (9 000 und AF) in denselben Zeilen mit fehlenden Werten befinden.

Lösung: Wir können die Zeilen mit fehlenden Beobachtungen entfernen, um dieses Problem zu beheben.

Wenn wir einen Datensatz mit Pandas laden, werden alle leeren Zellen automatisch in „NaN“-Werte umgewandelt.

Das Entfernen der NaN-Zellen liefert uns also einen sauberen Datensatz, der analysiert werden kann.

Wir können die dropna()Funktion verwenden, um die NaNs zu entfernen. Achse = 0 bedeutet, dass wir alle Zeilen entfernen möchten, die einen NaN-Wert haben:

Beispiel

health_data.dropna(axis=0,inplace=True)

print(health_data)

Das Ergebnis ist ein Datensatz ohne NaN Zeilen:

Gereinigte Daten

Datenkategorien

Um Daten zu analysieren, müssen wir auch wissen, mit welchen Arten von Daten wir es zu tun haben.

Daten können in drei Hauptkategorien unterteilt werden:

  1. Numerisch – Enthält numerische Werte. Kann in zwei Kategorien unterteilt werden:
    • Diskret: Zahlen werden als „ganz“ gezählt. Beispiel: Sie können nicht 2,5 Sitzungen trainiert haben, es sind entweder 2 oder 3
    • Kontinuierlich: Zahlen können von unendlicher Genauigkeit sein. Beispielsweise können Sie 7 Stunden, 30 Minuten und 20 Sekunden oder 7,533 Stunden schlafen
  2. Kategorial - Enthält Werte, die nicht miteinander gemessen werden können. Beispiel: Eine Farbe oder eine Trainingsart
  3. Ordnungszahl - Enthält kategoriale Daten, die gegeneinander gemessen werden können. Beispiel: Schulnoten, wo A besser ist als B und so weiter

Wenn Sie die Art Ihrer Daten kennen, wissen Sie, welche Technik Sie bei der Analyse anwenden müssen.


Datentypen

Wir können die info()Funktion verwenden, um die Datentypen innerhalb unseres Datensatzes aufzulisten: 

Beispiel

print(health_data.info())

Ergebnis:

Datentyp Float und Objekt

Wir sehen, dass dieser Datensatz zwei verschiedene Arten von Daten hat:

  • Float64
  • Objekt

Wir können hier keine Objekte zur Berechnung und Analyse verwenden. Wir müssen das Typobjekt in float64 konvertieren (float64 ist eine Zahl mit einer Dezimalstelle in Python).

Wir können die astype()Funktion verwenden, um die Daten in Float64 umzuwandeln.

Das folgende Beispiel konvertiert „Average_Pulse“ und „Max_Pulse“ in den Datentyp float64 (die anderen Variablen sind bereits vom Datentyp float64):

Beispiel

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())

Ergebnis:

Datentyp Float

Jetzt hat der Datensatz nur Float64-Datentypen.


Analysieren Sie die Daten

Wenn wir den Datensatz bereinigt haben, können wir mit der Analyse der Daten beginnen.

Wir können die describe()Funktion in Python verwenden, um Daten zusammenzufassen:

Beispiel

print(health_data.describe())

Ergebnis:

  Dauer Average_Pulse Max_Puls Kalorienverbrauch Stunden_Arbeit Stunden_Schlaf
Zählen 10.0 10.0 10.0 10.0 10.0 10.0
Bedeuten 51.0 102.5 137,0 285,0 6.6 7.5
Std 10.49 15.4 11.35 30.28 3.63 0,53
Mindest 30.0 80.0 120,0 240,0 0,0 7.0
25% 45.0 91.25 130,0 262.5 7.0 7.0
50% 52.5 102.5 140,0 285,0 8.0 7.5
75% 60,0 113,75 145,0 307.5 8.0 8.0
max 60,0 125,0 150,0 330,0 10.0 8.0
  • Count - Zählt die Anzahl der Beobachtungen
  • Mittelwert - Der Durchschnittswert
  • Std - Standardabweichung (Erklärung im Statistikkapitel)
  • Min - Der niedrigste Wert
  • 25 % , 50 % und 75 % sind Perzentile (erklärt im Statistikkapitel)
  • Max - Der höchste Wert