
Выбор данных
Для проекта были выбраны данные о пассажирах Титаника. Эти данные содержат следующие параметры:
1. Возраст (Age): Возраст пассажиров на момент катастрофы. 2. Пол (Sex): Пол пассажиров, обозначенный как «male» (мужчина) или «female» (женщина). 3. Выжившие (Survived): Информация о том, выжил ли пассажир (1) или погиб (0). 4. Класс каюты (Pclass): Класс, в котором пассажир путешествовал, указанный как 1, 2 или 3 класс. 5. Цена билета (Fare): Стоимость билета, которую заплатил пассажир за свое путешествие. 6. Наличие братьев/сестер и супругов на лайнере (Sibsp) 7. Наличие детей/родителей на лайнере (Parch) 8. Номер кабины (Cabin) 9. Пункт отправления (Embarked)
Эти данные были получены из набора данных «Titanic» из соревнования Kaggle (https://www.kaggle.com/competitions/titanic/data?select=train.csv)
Недавно мною был пересмотрен фильм Джеймса Кэмерона «Титаник». Именно поэтому во время поиска данных для выполнения задания я обратила внимание на данный датасет. Мне было интересно проанализировать данные по катастрофе Титаника из-за их богатства и разнообразия. Эти данные также предоставляют возможность исследовать социальные аспекты и неравенства, существовавшие в то время, такие как влияние пола и социального статуса на шансы выживания
Анализ данных
1. import matplotlib.pyplot as plt: Для начала импортируем библиотеку Matplotlib для создания и отображения графиков.
2. import pandas as pd: Затем импортируем библиотеку Pandas для работы с данными в виде таблиц (DataFrame), что удобно для анализа и манипуляции данными.
3. import numpy as np: После импортируем библиотеку NumPy для работы с массивами и выполнения числовых операций, что полезно для обработки и анализа данных.
4. %matplotlib inline: В четвертой строке импортируем Jupyter Notebook на отображение графиков Matplotlib непосредственно в ячейках ноутбука, обеспечивая удобную визуализацию данных в контексте кода.

Далее данные из файла «train.csv» загружаются в DataFrame Pandas для последующего анализа и визуализации. Следующим шагом из таблицы с данными был удален параметр PassengerId так как он не является объектом для анализа. Затем было найдено количество пустых ячеек в разных столбах. Было выявлено, что существует 177 пустых ячеек с возрастом, 687 пустых ячеек с номером кабины и 2 ячейки с пунктом отправления.
Для параметра пункта отправления в пустые ячейки было подставлено значение моды, а для параметра с номером кабины была проставлено «Unknown»
Стилизация графиков
Стилизация графиков была основана на использовании цветов в голубых оттенках. Данное цветовое решение было основано на цветах айсберга. Мною было выбрано три оттенка: skyblue, dodgerblue и steelblue. Также для графиков была сделана обводка, в некоторых случаях белая, в некоторых случаях голубая
Итоговые графики
Первый график показывает процент выживших мужчин и женщин. Известен факт, женщин и детей сажали в шлюпки первыми, следовательно у них было больше шансов на спасение. Но мне было интересно узнать именнонасколько больше женщин чем мужчин было среди выживших. Для данного графика была выбрана круговая диаграмма, так как она хорошо демонстрирует соотношение выживших мужчин и женщин
Процент выживших по полу
Второй график посвящен выживаемости пассажиров в зависимости класса их каюты. Для данного график была выбрана столбчатая диаграмма так как она отлично подходит для отображения количественных данных, сравнивающих несколько категорий кают, позволяя быстро и легко оценить, кто имел лучшие шансы на спасение
Выживаемость в зависимости от класса пассажиров
Третий график — распределение возраста среди пассажиров. Для меня стал открытием факт присутствия большого количества маленьких/новорожденных детей и малое количество пожилых. Для данного графика была также выбрана столбчатая диаграмма, которая позволила наглядно представить количество людей в каждой возрастной категории и сделать выводы о возрастной структуре пассажиров
Распределение возраста среди пассажиров
Четвертый график показывает зависимость цены билета от возраста. В данном случае используется диаграмма рассеяния. Она позволяет оценить, существует ли связь между возрастом пассажира и ценой его билета. Например, можно определить, платили ли более молодые пассажиры больше или меньше за свои билеты по сравнению с пассажирами старшего возраста
Цена билета & Возраст
Пятый график показывает процент выживших и умерших среди людей с счастливым билетиком, без него и общий процент. Для построения данного графика, сначала была написана программа для поиска этих самых счастливых билетиков. Номера билетов были предварительно почищены от лишних знаков, чтобы остались только цифры. Затем если билетик состоял из четного количества цифр, выявлялось счастливый он или нет (сумма первых символов, равна сумме стольких же последних цифр). После этого в исходный датасет был добавлен новый столбец «is_lucky», показывающий счастливый ли билетик (True — счастливый, False — нет). Столбчатая диаграмма в данном случае позволяет легко сравнить процент выживших и умерших среди пассажиров с разными типами билетиков.
Выживаемость в зависимости от типа билета
Использование ИИ
Для поиска вариантов стилизации я обратилась к чату GPT от Open Ai (https://chatgpt.com) со следующим запросом, включающим в себя код для первого графика:
«s = train[train['Survived'] == 1] survived_female = round (s[s['Sex']=='male'].shape[0]/s.shape[0]*100, 1) survived_male = 100 — survived_female fig, ax = plt.subplots () ax.pie ([survived_male, survived_female], labels=['Male', 'Female'], autopct='%1.1f%%', colors = ['skyblue', 'dodgerblue'])
Стилизуй pie chart в голубых оттенках, сделай максимально красиво»
Также я обратилась к чату GPT (https://chatgpt.com) для поиска решений для создания графиков со следующим запросом:
«Сделай 5 репрезентативных диаграмм основываясь на данных.
Используй библиотеки: import matplotlib.pyplot as plt import pandas as pd»
Из вариантов, предложенных чатом GPT мне понравились графики про выживаемость в зависимости от класса пассажиров, а также про распределение возраста
Заключение
В ходе анализа данных мною были выявлены несколько интересных фактов. Во-первых процент выживших женщин превышает в два раза процент выживших мужчин. Во-вторых, среди пассажиров 1 класса выжило более 60% пассажиров, в то время как всего 25% пассажиров 3 класса удалось выжить. В-третьих, как было отмечено ранее, среди пассажиров на лайнере было достаточно много детей до 10 лет (около 65-70 человек), в то время как пожилых пассажиров старше 60 лет было мало (около 25 человек). При анализе зависимости цены билета от возраста, не было выявлено корреляции между данными двумя параметрами, но лично я обратила внимание на большое количество билетов стоимость около 10-30 долларов. Пятый график четко показывает, что счастливый билетик вопреки различным суевериям оказался не таким уж и счастливым для пассажиров лайнера
Блокнот и датасет
Датасет в формате csv: https://disk.yandex.ru/i/lQgUFcQFh7ovYA
Блокнот с анализом: https://disk.yandex.ru/d/o0_g8WqrTV0Z_w