Original size 2480x3500

Анализ выживаемости на Титанике

PROTECT STATUS: not protected
The project is taking part in the competition

Концепция

В данном проекте был проанализирован датасет Titanic, содержащий информацию о пассажирах легендарного лайнера. Целью анализа является изучение факторов, связанных с выживаемостью пассажиров, а также выявление распределений по возрасту, полу и классу билета. В ходе работы были использованы методы предварительной обработки данных и различные типы визуализаций, позволяющие наглядно представить полученные результаты и сделать выводы о структуре и особенностях данных.

big
Original size 5004x2307

Визуальный стиль графиков был выбран с опорой на атмосферу истории Titanic и его трагический контекст. Тёмно-синяя цветовая палитра символизирует ночной океан и холодные воды Атлантики, в которых оказался корабль после столкновения с айсбергом. Светлые и холодные оттенки, используемые для отображения данных, создают контраст с фоном и ассоциируются с уязвимостью пассажиров и хрупкостью человеческой жизни перед стихией.

Единая стилизация всех графиков позволяет сохранить визуальную целостность проекта, улучшает читаемость и помогает сосредоточить внимание на анализе данных, не отвлекаясь на различия в оформлении визуализаций.

Обработка данных

Для начала я импортировала необходимые мне библиотеки: pandas и matplotlib.pyplot. После чего считала csv-файл датасета «Titanic» с помощью pd.read_csv () по прямой ссылке.

big
Original size 5004x970
big
Original size 4953x742

Визуализация данных

Original size 5004x1485
Original size 5004x1485

После я приступила к подготовке данных для круговой диаграммы. Переменную value использовала для подсчёта количества пассажиров в каждой категории (Survived: 0 — погиб, 1 — выжил) с помощью функции value_counts (). Переменную name использовала для подписей сегментов диаграммы.

Original size 5004x1485
Original size 5004x1766

По круговой диаграмме видно, что большинство пассажиров «Титаника» не выжили. Доля погибших значительно превышает долю выживших, что подчёркивает масштаб трагедии. Это говорит о том, что условия спасения были крайне ограниченными, и лишь меньшая часть пассажиров смогла покинуть корабль после катастрофы.

Далее я обработала данные для гистограммы. В переменную died_age я сохраняла значения возраста Age, если в столбце Survived было значение 0 (погиб). Похожую операцию сделала с переменной surv_age, сохранив возраст пассажиров со значением Survived = 1 (выжил). Так как в столбце возраста встречаются пропуски, я использовала .dropna (), чтобы убрать пустые значения перед построением графика.

Original size 5004x1993
Original size 932x537

Гистограмма показывает распределение возраста пассажиров среди погибших и выживших. Можно заметить, что среди выживших относительно больше детей и молодых пассажиров, тогда как среди погибших преобладают взрослые. Это может быть связано с приоритетом спасения женщин и детей, а также с физическими возможностями пассажиров разного возраста.

Для создания точечной диаграммы я применяла группировку по возрасту (Age) и статусу выживания (Survived). С помощью groupby ([«Age», «Survived»]) я сгруппировала данные, а функция .size () подсчитала количество пассажиров в каждой группе. Далее с помощью .reset_index (name="count») я преобразовала результат в таблицу, чтобы удобно построить scatter-график. После этого я разделила итоговую таблицу на две части: died — строки, где Survived = 0 surv — строки, где Survived = 1

Original size 5004x3225
Original size 950x537

Точечная диаграмма отражает зависимость количества пассажиров от возраста и статуса выживания. Видно, что наибольшее число пассажиров приходится на возрастной диапазон от 20 до 40 лет. При этом для большинства возрастов количество погибших превышает количество выживших, что дополнительно подтверждает низкий общий уровень выживаемости на борту.

Потом я подготовила данные для тепловой карты. Используя метод .pivot_table (), я создала сводную таблицу, которая показывает количество пассажиров в зависимости от пола (Sex) и класса билета (Pclass). Индексы (строки) в таблице — пол пассажиров (Sex) Столбцы — класс билета (Pclass) aggfunc="size» используется для подсчёта количества строк (то есть пассажиров) в каждой клетке fill_value=0 помогает заполнить отсутствующие комбинации нулями Затем я визуализировала эту таблицу как матрицу с помощью plt.imshow () и подписала значения в каждой клетке.

Original size 5004x2829
Original size 685x343

Тепловая карта демонстрирует распределение пассажиров по полу и классу билета. Наибольшее количество пассажиров находилось в третьем классе, особенно среди мужчин. Это указывает на то, что значительная часть людей на борту относилась к более доступным по стоимости классам, что в дальнейшем могло повлиять на их шансы на выживание.

Визуальный анализ данных показывает, что выживаемость пассажиров «Титаника» зависела от нескольких факторов, включая возраст, пол и класс билета. Использование различных типов графиков позволило наглядно выявить эти зависимости и глубже понять структуру данных.

Ссылка на дататест