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

Обробка Пропущених Значень

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

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

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

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

Щоб вивести загальну інформацію про набір даних і перевірити наявність пропущених значень, можна використати метод .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())

У наборі даних міститься 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())

Рядки, що містять пропущені значення, можна відобразити за допомогою: 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)])

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

Перший і останній рядки містять лише цільову змінну ('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))

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

question mark

Які з наступних методів можна використати для виявлення пропущених значень у DataFrame бібліотеки pandas?

Виберіть усі правильні відповіді

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

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

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

Секція 1. Розділ 8

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Обробка Пропущених Значень

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

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

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

Щоб вивести загальну інформацію про набір даних і перевірити наявність пропущених значень, можна використати метод .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())

У наборі даних міститься 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())

Рядки, що містять пропущені значення, можна відобразити за допомогою: 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)])

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

Перший і останній рядки містять лише цільову змінну ('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))

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

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

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

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

Секція 1. Розділ 8
some-alt