УМК СПО

Учебно-методические комплексы

для преподавателей СПО








Загрузка и первичный анализ датасета «Титаник»

ОП.09 Обработка и анализ данных

Практическая работа №1

Тема: Загрузка и первичный анализ датасета «Титаник»


Цель работы: Научиться загружать данные в Pandas, выполнять первичный анализ структуры, выявлять пропуски и аномалии, строить простые визуализации.

Время выполнения: 2 академических часа

Инструменты: Python + Jupyter Notebook, библиотеки pandas, matplotlib


ЗАДАНИЕ ДЛЯ СТУДЕНТА


Этап 1. Загрузка данных (10 минут)

1. Скачайте датасет titanic.csv по ссылке:
https://www.kaggle.com/c/titanic/data (файл train.csv)

Альтернативная ссылка:
https://github.com/datasciencedojo/datasets/raw/master/titanic.csv

2. Создайте новый блокнот Jupyter: Файл → Создать → Notebook

3. Импортируйте библиотеки и загрузите данные:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('titanic.csv')   # укажите путь к файлу

Этап 2. Первичный осмотр (20 минут)

Выполните команды:

df.head()          # первые 5 строк
df.tail()          # последние 5 строк
df.info()          # типы данных и количество ненулевых значений
df.describe()      # статистика по числовым столбцам

Вопросы для самопроверки:

• Сколько строк и столбцов в датасете?
• Какие столбцы имеют пропуски? Сколько пропусков в каждом?
• Каков средний возраст пассажира? Минимальный? Максимальный?


Этап 3. Очистка данных (30 минут)

Выполните преобразования:

# 1. Удалите ненужные столбцы
df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)

# 2. Проверьте результат
df.head()

# 3. Заполните пропуски в возрасте средним значением
df['Age'].fillna(df['Age'].mean(), inplace=True)

# 4. Заполните пропуски в Embarked наиболее частым значением
most_common = df['Embarked'].mode()[0]
df['Embarked'].fillna(most_common, inplace=True)

# 5. Проверьте, что пропусков больше нет
df.info()

Этап 4. Анализ и визуализация (40 минут)

Постройте графики с помощью matplotlib:

# 1. Гистограмма распределения возраста
plt.hist(df['Age'], bins=20, edgecolor='black')
plt.title('Распределение возраста пассажиров')
plt.xlabel('Возраст')
plt.ylabel('Количество')
plt.show()

# 2. Столбчатая диаграмма: выживаемость по классу
survival_by_class = df.groupby('Pclass')['Survived'].mean()
survival_by_class.plot(kind='bar', color=['red', 'blue', 'green'])
plt.title('Доля выживших по классу билета')
plt.xlabel('Класс')
plt.ylabel('Доля выживших')
plt.xticks(rotation=0)
plt.show()

# 3. Сравнение выживаемости мужчин и женщин
survival_by_sex = df.groupby('Sex')['Survived'].mean()
survival_by_sex.plot(kind='pie', autopct='%1.1f%%')
plt.title('Выживаемость: мужчины vs женщины')
plt.ylabel('')
plt.show()

Этап 5. Выводы (10 минут)

Напишите текстовый ответ в ячейке Markdown на вопросы:

1. Какая категория пассажиров выживала чаще: мужчины или женщины?
2. Как класс билета влияет на выживаемость?
3. Какие ещё закономерности вы заметили?


КРИТЕРИИ ОЦЕНКИ

Критерий Макс. балл
Код выполнен без ошибок 2
Все этапы пройдены (1-5) 2
Пропуски корректно обработаны 2
Построены 3 графика 2
Выводы осмысленны и по делу 2
Итого 10


ОТВЕТ ДЛЯ ПРЕПОДАВАТЕЛЯ (эталонный результат)

Нажмите, чтобы увидеть ответы
Этап 2. Вопросы:
• 891 строка, 12 столбцов
• Пропуски: Age (177), Cabin (687), Embarked (2)
• Средний возраст ≈ 29.7, min = 0.42, max = 80

Этап 5. Выводы (ожидаемые ответы):
1. Женщины выживали значительно чаще (≈74%), чем мужчины (≈19%)
2. Пассажиры 1 класса выживали чаще (≈63%), 2 класса (≈48%), 3 класса (≈24%)
3. Дополнительно можно заметить: молодые пассажиры выживали чаще пожилых

Ожидаемые графики:
• Гистограмма возраста — колоколообразная форма, пик в районе 20–30 лет
• Столбчатая диаграмма — убывание от 1 к 3 классу
• Круговая диаграмма — преобладание выживших женщин


Автор: УМК СПО
Лицензия: Бесплатное использование с указанием источника





Логин: Пароль: Забыли пароль?Регистрация

Самозанятый: Стешенко Светлана Николаевна ИНН: 231408226339

Актуальная версия — 2026
Сайт сделан на SiNG cms © 2010-2020