1. Навіщо це потрібно?
Уяви, що ти інженер на фабриці даних. Тобі потрібно проаналізувати і організувати сировину (дані), щоб отримати готовий продукт (інсайти, звіти). Без чистки і форматування твої дані лишаються купою розкиданих запчастин, з яких важко щось зібрати.
Чисті та відформатовані дані — це не тільки питання естетики і зручності читання, а й важлива умова для коректного аналізу і побудови моделей. Неправильно оброблені дані можуть призвести до хибних висновків, а ніхто не хоче опинитися в ситуації, коли наприкінці робочого дня ти розумієш, що обчислив середній вік співробітників не в роках, а у якихось дрібних шматочках даних.
Основні задачі форматування
Перед тим як приступити до коду, давай розберемо, яких проблем ми хочемо уникнути та вирішити за допомогою форматування:
- Видалення пустих рядків і стовпців: Вони як порожні кишені — не приносять користі, але легко вводять в оману.
- Видалення дублікатів: Повторювані записи вносять шум у наші дані.
- Заповнення пропущених значень: Це як дірки у сирі, які іноді варто заповнити чимось смачненьким.
- Перетворення типів даних: Важливо переконатися, що вік — це число, а не текст. Щоб не плутати реальний вік з "25 років досвіду роботи", написаними в лапках.
2. Інструменти для очищення та форматування даних
Тепер, коли ми знаємо, навіщо це потрібно, давай поглянемо на інструменти, які допоможуть нам у цьому, як швейцарський ніж у поході:
- Видалення пустих значень:
dropna() - Робота з дублікатами:
duplicated()іdrop_duplicates() - Заповнення пропусків:
fillna() - Перетворення типів даних:
astype()
Видалення пустих значень
Пусті значення — одні з тих речей, які завжди з'являються не вчасно. За допомогою dropna() ми можемо позбутися їх як від старих непотрібних шкарпеток. Давай подивимося на приклад:
import pandas as pd
# Створюємо DataFrame з пропусками
data = {'Імʼя': ['Анна', 'Іван', None, 'Марія'],
'Вік': [29, None, 34, 23],
'Місто': ['Київ', 'Одеса', 'Львів', None]}
df = pd.DataFrame(data)
# Видаляємо рядки з будь-якими NaN значеннями
cleaned_df = df.dropna()
print(cleaned_df)
Цей код видалить всі рядки, які містять хоча б одне пусте значення.
Робота з дублікатами
Іноді у твоїх даних трапляються дублікаті, як у грі "Знайди відмінності", де відмінностей немає. Такі записи ми можемо відсіяти за допомогою drop_duplicates().
# Створюємо DataFrame з дублікатами
data = {'Імʼя': ['Анна', 'Іван', 'Анна', 'Марія'],
'Вік': [29, 34, 29, 23]}
df = pd.DataFrame(data)
# Видаляємо дублікаті
unique_df = df.drop_duplicates()
print(unique_df)
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ