Menu
Coddy logo textTech

Datenbereinigung - Fehlende Daten

Lektion 6 von 19 im Kurs Pandas Analytics von Coddy.

Normalerweise enthalten CSV-Dateien fehlende Daten, falsche Spaltennamen, Duplikate, falsche Werte und falsche Datentypen. Das Pandas-Modul verfügt über alle Werkzeuge, um diese Probleme zu beheben.

Fehlende Daten

Um herauszufinden, ob ein Wert fehlt oder nicht:

df.isna()

Um zu erfahren, wie viele fehlende Werte jede Spalte hat:

df.isna().sum()

Die isna()-Funktion konvertiert alle Werte in true oder false (fehlend oder nicht) und wendet sie dann an. sum() behandelt true als 1 und false als 0.

Um über die Spalten und deren Anzahl an fehlenden Werten zu iterieren, verwenden Sie die items()-Methode genau wie bei einem Dictionary (obwohl es sich um ein Pandas-Series-Objekt handelt):

for column, missing_num in df.isna().sum().items():
	print(column, missing_num)

Um all diese fehlenden Werte für den gesamten Dataframe auszufüllen, verwenden Sie die fillna()-Methode:

df = df.fillna("some value")

Um fehlende Werte nur für eine Spalte auszufüllen, verwenden Sie die fillna()-Funktion über eine Spalte:

df["some_column"] = df["some_column"].fillna("some value")

Es gibt auch die Option, alle Zeilen mit fehlenden Werten zu entfernen:

df = df.dropna()
challenge icon

Aufgabe

Einfach

Die CSV-Datei missing.csv ist unordentlich.

Hier sind die ersten 5 Zeilen der Datei:

ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID
1,France,Signal violet,marksmanship,14,0.1924,1
1,France,Signal violet,marksmanship,14,0.1924,1
2,Solomon Islands,Pearl violet,,4,,1
3,Germany,,calligraphy,12,0.88646,0

Bereinigen Sie die Daten:

  • Füllen Sie die fehlenden Werte aller Spalten, die mehr als 2 fehlende Werte haben, mit dem Wert Missing auf.
  • Entfernen Sie alle restlichen Zeilen, die fehlende Werte enthalten.

Um Ihren Fortschritt zu sehen, geben Sie den df aus: print(df)

Speichern Sie das Endergebnis in der Variable df.
Geben Sie den df nicht aus, um den Testfall zu bestehen!

Probier es selbst

# pandas als pd ist bereits importiert
df = pd.read_csv("./missing.csv")
# Schreibe deinen Code unten

Alle Lektionen in Pandas Analytics