ВВЕДЕНИЕ
В последнее время мне всё чаще стала интересна тема «Титаника». Возможно, из-за феномена Баадера — Майнхофа я стал замечать его упоминание в разных элементах массовой культуры, а также в обычных диалогах с друзьями.
Вот и в этот раз, при поиске определённых данных для анализа, я нашёл информацию о пассажирах «Титаника».

Для анализа были выбраны данные о пассажирах, которые содержат информацию о возрасте, поле, включают также класс каюты, стоимость билета, порт посадки и информацию о том, выжили они или нет. Данные были взяты из открытого источника в формате CSV.
Сайт https://hubofdata.ru/dataset/titanic
Загрузка данных и обработка
В коде использованы библиотеки pandas, matplotlib.pyplot и seaborn
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
Загрузка данных
url = "https://hubofdata.ru/dataset/ca6d4c26-ea00-432d-b0d7-1c29d34a991f/resource/8de4874e-0d72-4a24-bc3d-f80f239385e2/download/train.csv" data = pd.read_csv(url)
Просмотр первых строк данных
print(data.head())
Проверка на пропущенные значения
print(data.isnull().sum())
Заполнение пропущенных значений в столбце 'Age' медианным значением
data['Age'].fillna(data['Age'].median(), inplace=True)
Удаление строк с пропущенными значениями в столбце 'Embarked'
data.dropna(subset=['Embarked'], inplace=True)
Рисуем диаграммы
1. Распределение возрастов пассажиров
plt.figure(figsize=(10, 6)) sns.histplot(data['Age'], bins=30, kde=True, color='blue') plt.title('Распределение возрастов пассажиров') plt.xlabel('Возраст') plt.ylabel('Количество пассажиров') plt.show()
Столбчатая диаграмма. Распределение возрастов пассажиров.
На графике виден яркий пик. Интересно, что больше всего людей на «Титанике» было в возрасте около 28 лет. Вероятно, это тот возраст, в котором уже можно спокойно путешествовать, если имеешь средства для этого.
Также, возможно, многие пассажиры третьего класса в этом возрасте ехали на заработки в Америку.
2. Количество выживших и погибших в зависимости от пола
plt.figure(figsize=(8, 6)) sns.countplot(x='Sex', hue='Survived', data=data, palette='Set2') plt.title('Выживаемость по полу') plt.xlabel('Пол') plt.ylabel('Количество пассажиров') plt.legend(['Погибшие', 'Выжившие']) plt.show()
Гистограмма. Выживаемость по полу.
Здесь, в целом, всё очевидно: раньше (да и сейчас) в первую очередь спасали женщин и детей. Именно поэтому количество выживших женщин больше, чем количество выживших мужчин и погибших женщин.
3. Распределение пассажиров по классам кают
plt.figure(figsize=(8, 6)) data['Pclass'].value_counts().plot(kind='pie', autopct='%1.1f%%', colors=['gold', 'lightcoral', 'lightgreen']) plt.title('Распределение пассажиров по классам кают') plt.ylabel('') plt.show()
Круговая диаграмма. Распределение пассажиров по классам кают.
В данном случае, распределение пассажиров по классам представлено выше. Интересно, что в сумме пассажиров 2-го и 1-го класса около 45%.
4. Зависимость выживаемости от класса каюты
plt.figure(figsize=(10, 6)) sns.countplot(x='Pclass', hue='Survived', data=data, palette='Set2') plt.title('Зависимость выживаемости от класса каюты', fontsize=16) plt.xlabel('Класс каюты', fontsize=14) plt.ylabel('Количество пассажиров', fontsize=14) plt.legend(['Погибшие', 'Выжившие'], title='Выживаемость', fontsize=12) plt.xticks([0, 1, 2], ['1 класс', '2 класс', '3 класс'], fontsize=12) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Зависимость выживаемости от класса каюты
Как известно, пассажиры 3-го класса дальше всех были расположены от шлюпок. Следовательно, им сложнее было добраться до спасательных средств.
Каюта третьего класса
Заключение
Этот анализ оказался весьма интересным. В целом, он подтвердил мои догадки, но также дал возможность узнать что-то новое в этой теме.




