Лабораторная работа №3: Продвинутый Pandas (EDA)
Цель: Освоить методы агрегации данных (groupby, pivot_table), научиться объединять разные таблицы (merge) и выработать стратегию работы с пропущенными значениями (NaN).
Инструменты:
- Python 3
- Pandas
- Seaborn (для загрузки учебных данных)
Данные: Мы будем работать с классическим датасетом Titanic. Он идеально подходит для этой практики, так как содержит пропуски (возраст, каюты) и категориальные признаки для группировки.
Часть 1: Анализ и обработка пропусков (Missing Values)
В реальных данных часто встречаются пустые ячейки. В Pandas они отображаются как NaN (Not a Number) или None. Модели машинного обучения не умеют работать с пропусками, поэтому их нужно устранить.
Задание 1.1:
- Загрузите датасет Titanic.
- Посчитайте количество пропусков в каждом столбце.
- Посчитайте процент пропусков для каждого столбца.
Часть 2: Группировка (Groupby)
Теперь, когда данные чисты, мы можем искать инсайты. Основной вопрос: "Кто выжил?".
Задание 2.1: Вычислите среднюю выживаемость (survived) в зависимости от класса каюты (pclass).
Подсказка: survived равен 1 или 0. Среднее значение автоматически даст процент выживших.
Часть 3: Сводные таблицы (Pivot Tables)
Сводные таблицы позволяют смотреть на данные в двух разрезах одновременно (матричный вид).
Задание 3.1: Построение Pivot Table
Создайте таблицу, где:
- Индекс (строки):
sex(пол). - Колонки:
class(класс каюты: First, Second, Third). - Значения:
survived(средняя выживаемость).
Бизнес-вопрос
Это позволит ответить на вопрос: "Правда ли, что женщин из 1-го класса спасали чаще, чем мужчин из 3-го?"
Часть 4: Объединение таблиц (Merge)
Представьте, что у нас есть справочник с описанием портов посадки, который пришел из другого отдела. Нам нужно "подтянуть" эти описания в главную таблицу.
Задание 4.1: Left Join
- Создан справочник
port_names. - Объедините
df_cleanсport_namesпо ключуembarked/code. - Используйте
how='left', чтобы не потерять строки, если для какого-то порта нет описания.