Czyszczenie i dostęp do danych

Praca z danymi kategorycznymi w Pythonie

Kasey Jones

Research Data Scientist

Możliwe problemy z danymi kategorycznymi

1) Niespójne wartości: "Ham", "ham", " Ham"

2) Błędnie wpisane wartości: "Ham", "Hma"

3) Nieprawidłowy dtype: df['Our Column'].dtype

dtype('O')
Praca z danymi kategorycznymi w Pythonie

Identyfikowanie problemów

Użyj:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Praca z danymi kategorycznymi w Pythonie

Naprawa problemów: białe znaki

Usuwanie białych znaków: .strip()

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

Sprawdzenie liczby wystąpień:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- no more whitespace
Praca z danymi kategorycznymi w Pythonie

Naprawa problemów: wielkość liter

Wielkość liter: .title(), .upper(), .lower()

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

Sprawdzenie liczby wystąpień:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Praca z danymi kategorycznymi w Pythonie

Naprawa problemów: literówki

Poprawianie literówki za pomocą .replace()

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

Sprawdzenie liczby wystąpień:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Praca z danymi kategorycznymi w Pythonie

Sprawdzanie typu danych

Sprawdzenie dtype

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

Konwersja z powrotem na kategorię

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Praca z danymi kategorycznymi w Pythonie

Użycie obiektu akcesor str

Wyszukiwanie ciągu znaków

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Praca z danymi kategorycznymi w Pythonie

Dostęp do danych za pomocą loc

Dostęp do wartości Series według kategorii

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

Liczba wartości w Series:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Praca z danymi kategorycznymi w Pythonie

Ćwiczenia: czyszczenie i dostęp

Praca z danymi kategorycznymi w Pythonie

Preparing Video For Download...