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

Для анализа были выбраны данные о пассажирах, которые содержат информацию о возрасте, поле, включают также класс каюты, стоимость билета, порт посадки и информацию о том, выжили они или нет. Данные были взяты из открытого источника в формате CSV.
Загрузка данных и обработка
В коде использованы библиотеки 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 ())
data['Age'].fillna (data['Age'].median (), inplace=True)
data.dropna (subset=['Embarked'], inplace=True)
Рисуем диаграммы
plt.figure (figsize=(10, 6)) sns.histplot (data['Age'], bins=30, kde=True, color='blue') plt.title ('Распределение возрастов пассажиров') plt.xlabel ('Возраст') plt.ylabel ('Количество пассажиров') plt.show ()
На графике виден яркий пик. Интересно, что больше всего людей на «Титанике» было в возрасте около 28 лет. Вероятно, это тот возраст, в котором уже можно спокойно путешествовать, если имеешь средства для этого.
Также, возможно, многие пассажиры третьего класса в этом возрасте ехали на заработки в Америку.
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 ()
Здесь, в целом, всё очевидно: раньше (да и сейчас) в первую очередь спасали женщин и детей. Именно поэтому количество выживших женщин больше, чем количество выживших мужчин и погибших женщин.
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%.
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-го класса дальше всех были расположены от шлюпок. Следовательно, им сложнее было добраться до спасательных средств.
Заключение
Этот анализ оказался весьма интересным. В целом, он подтвердил мои догадки, но также дал возможность узнать что-то новое в этой теме.