Этап 1: Подготовка и первичный осмотр
-
Загрузка: Скачайте tips.csv
-
Проверка: Выведите первые 10 строк, чтобы понять структуру.
-
Инфо: Узнайте типы данных в колонках и количество записей.
-
Пропуски: Проверьте датасет на наличие пустых значений.
-
Статистика: Выведите основные статистические показатели (среднее, минимум, максимум) для числовых признаков.
Этап 2: Фильтрация и выборка
-
Выбор колонок: Создайте новый DataFrame, содержащий только столбцы total_bill и tip.
-
Дорогие заказы: Отфильтруйте записи, где общая сумма счета (total_bill) превышает $30.
-
Воскресный ужин: Выберите только те заказы, которые были сделаны в воскресенье (Sun) в вечернее время (Dinner).
-
Щедрые чаевые: Найдите все счета, где чаевые составили более $7.
-
Сортировка: Отсортируйте данные по убыванию суммы счета.
Этап 3: Группировка и агрегация
-
Средний счет по дням: Посчитайте среднюю сумму счета для каждого дня недели.
-
Курильщики: Сравните средний размер чаевых у курящих и некурящих гостей.
-
Размер компании: Сколько заказов было сделано компаниями разного размера?
-
Гендерный анализ: Кто в среднем оставляет больше чаевых — мужчины или женщины?
-
Сложная группа: Посчитайте максимальную и минимальную сумму счета для каждой комбинации дня недели и времени суток.
-
💡 Подсказка: Передайте в groupby список колонок: groupby(['day', 'time']), а затем примените несколько функций через метод .agg(['min', 'max']).
Этап 4: Создание признаков и преобразование
-
Процент чаевых: Создайте новую колонку tip_pct, которая содержит процент чаевых от общей суммы счета.
-
Переименование: Переименуйте колонку sex в gender, а size в party_size.
-
Категории: Создайте признак, который делит счета на «Маленькие» (до $15) и «Большие» (свыше $15).
-
💡 Подсказка: Можно использовать np.where(условие, 'Большие', 'Маленькие') из библиотеки NumPy, или написать свою функцию и применить ее через метод .apply().