Обробка Відсутніх Значень
Свайпніть щоб показати меню
Лише обмежена кількість моделей машинного навчання може працювати з пропущеними значеннями, тому необхідно перевірити набір даних на наявність прогалин. Якщо пропущені значення присутні, їх можна обробити двома способами:
- Видалення рядків, які містять пропущені значення;
- Заповнення порожніх клітинок замінниками, процес, який називається імпутацією.
Виявлення пропущених значень
Для виведення загальної інформації про набір даних і перевірки наявності пропущених значень можна використати метод .info() об'єкта DataFrame.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
У наборі даних міститься 344 записи, але стовпці 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' та 'sex' мають менше ніж 344 ненульових значень, що свідчить про наявність пропущених даних.
Null — це інша назва пропущених значень.
Щоб визначити кількість пропущених значень у кожному стовпці, застосуйте метод .isna(), а потім використайте .sum().
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Рядки, що містять пропущені значення, можна відобразити за допомогою:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Видалення рядків
Перший і останній рядки містять лише цільову змінну ('species') та значення 'island', що надає занадто мало інформації для подальшого використання. Ці рядки можна видалити, залишивши лише ті, у яких менше двох значень NaN, та перепризначивши їх у df.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
На відміну від цього, решта рядків містить корисну інформацію, а значення NaN з’являються лише у стовпці 'sex'. Замість видалення цих рядків, відсутні значення можна імпутувати. Поширеним підходом є використання трансформера SimpleImputer, який буде розглянуто у наступному розділі.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат