Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Обробка Відсутніх Значень | Попередня Обробка Даних Із Scikit-learn
Вступ до машинного навчання з Python

bookОбробка Відсутніх Значень

Свайпніть щоб показати меню

Лише обмежена кількість моделей машинного навчання може працювати з пропущеними значеннями, тому необхідно перевірити набір даних на наявність прогалин. Якщо пропущені значення присутні, їх можна обробити двома способами:

  • Видалення рядків, які містять пропущені значення;
  • Заповнення порожніх клітинок замінниками, процес, який називається імпутацією.

Виявлення пропущених значень

Для виведення загальної інформації про набір даних і перевірки наявності пропущених значень можна використати метод .info() об'єкта DataFrame.

12345
import 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())
copy

У наборі даних міститься 344 записи, але стовпці 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' та 'sex' мають менше ніж 344 ненульових значень, що свідчить про наявність пропущених даних.

Note
Примітка

Null — це інша назва пропущених значень.

Щоб визначити кількість пропущених значень у кожному стовпці, застосуйте метод .isna(), а потім використайте .sum().

12345
import 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())
copy

Рядки, що містять пропущені значення, можна відобразити за допомогою: df[df.isna().any(axis=1)]

12345
import 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)])
copy

Видалення рядків

Перший і останній рядки містять лише цільову змінну ('species') та значення 'island', що надає занадто мало інформації для подальшого використання. Ці рядки можна видалити, залишивши лише ті, у яких менше двох значень NaN, та перепризначивши їх у df.

123456
import 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))
copy

На відміну від цього, решта рядків містить корисну інформацію, а значення NaN з’являються лише у стовпці 'sex'. Замість видалення цих рядків, відсутні значення можна імпутувати. Поширеним підходом є використання трансформера SimpleImputer, який буде розглянуто у наступному розділі.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 3
some-alt