Очищення та доступ до даних

Робота з категоріальними даними в Python

Kasey Jones

Research Data Scientist

Можливі проблеми з категоріальними даними

1) Непослідовні значення: "Ham", "ham", " Ham"

2) Орфографічні помилки: "Ham", "Hma"

3) Хибний dtype: df['Our Column'].dtype

dtype('O')
Робота з категоріальними даними в Python

Виявлення проблем

Використайте одне з цього:

  • Series.cat.categories
  • Series.value_counts()
dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
 NO       1
Робота з категоріальними даними в Python

Виправлення: пропуски

Прибирання пропусків: .strip()

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

Перевірте частоти:

dogs["get_along_cats"].value_counts()
No     2503
yes     275
no      156
Noo       2
NO        1   # < ---- більше немає пропусків
Робота з категоріальними даними в Python

Виправлення: регістр

Регістр: .title(), .upper(), .lower()

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

Перевірте частоти:

dogs["get_along_cats"].value_counts()
No     2660 
Yes     275
Noo       2
Робота з категоріальними даними в Python

Виправлення: орфографічні помилки

Виправлення описки через .replace()

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

Перевірте частоти:

dogs["get_along_cats"].value_counts()
No     2662
Yes     275
Робота з категоріальними даними в Python

Перевірка типу даних

Перевірка dtype

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

Повернення до категорійного типу

dogs["get_along_cats"] = dogs["get_along_cats"].astype("category")
Робота з категоріальними даними в Python

Використання об'єкта-доступника str

Пошук рядка

dogs["breed"].str.contains("Shepherd", regex=False)
0        False
1        False
2        False
...
2935     False
2936     True
Робота з категоріальними даними в Python

Доступ до даних за допомогою loc

Доступ до значень Series за категорією

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

Підрахунок значень Series:

dogs.loc[dogs["get_along_cats"] == "Yes", "size"].value_counts(sort=False)
small      69
medium    169
large      37
Робота з категоріальними даними в Python

Практика: очищення та доступ

Робота з категоріальними даними в Python

Preparing Video For Download...