Daten bereinigen und abrufen

Arbeiten mit kategorialen Daten in Python

Kasey Jones

Research Data Scientist

Mögliche Probleme mit kategorialen Daten

1) Uneinheitliche Werte: "Ham", "ham", " Ham"

2) Tippfehler: "Ham", "Hma"

3) Falscher dtype: df['Our Column'].dtype

dtype('O')
Arbeiten mit kategorialen Daten in Python

Probleme erkennen

Verwende entweder:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Arbeiten mit kategorialen Daten in Python

Probleme beheben: Leerzeichen

Leerzeichen entfernen: .strip()

dogs["get_along_cats"] = dogs["get_along_cats"].str.strip()

Häufigkeiten prüfen:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- keine Leerzeichen mehr
Arbeiten mit kategorialen Daten in Python

Probleme beheben: Groß-/Kleinschreibung

Groß-/Kleinschreibung: .title(), .upper(), .lower()

dogs["get_along_cats"] = dogs["get_along_cats"].str.title()

Häufigkeiten prüfen:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Arbeiten mit kategorialen Daten in Python

Probleme beheben: Rechtschreibfehler

Tippfehler mit .replace() beheben

replace_map = {"Noo": "No"}
dogs["get_along_cats"].replace(replace_map, inplace=True)

Häufigkeiten prüfen:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Arbeiten mit kategorialen Daten in Python

Den Datentyp prüfen

dtype prüfen

dogs["get_along_cats"].dtype
dtype('O')

Zurück in Kategorie umwandeln

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Arbeiten mit kategorialen Daten in Python

Den str-Accessor nutzen

Nach einem String suchen

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Arbeiten mit kategorialen Daten in Python

Daten mit loc abrufen

Series-Werte nach Kategorie abrufen

dogs.loc[dogs["get_along_cats"] == "Yes", "size"]

Series-Häufigkeiten:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Arbeiten mit kategorialen Daten in Python

Üben: Bereinigen und Abrufen

Arbeiten mit kategorialen Daten in Python

Preparing Video For Download...