Original size 1140x1834

Титаник — анализ пассажиров

PROTECT STATUS: not protected
4

ВВЕДЕНИЕ

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

Вот и в этот раз, при поиске определённых данных для анализа, я нашёл информацию о пассажирах «Титаника».

big
Original size 960x620

Для анализа были выбраны данные о пассажирах, которые содержат информацию о возрасте, поле, включают также класс каюты, стоимость билета, порт посадки и информацию о том, выжили они или нет. Данные были взяты из открытого источника в формате 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 ())

Заполнение пропущенных значений в столбце '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 ()

Original size 1452x824

Столбчатая диаграмма. Распределение возрастов пассажиров.

На графике виден яркий пик. Интересно, что больше всего людей на «Титанике» было в возрасте около 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 ()

Original size 1104x824

Гистограмма. Выживаемость по полу.

Здесь, в целом, всё очевидно: раньше (да и сейчас) в первую очередь спасали женщин и детей. Именно поэтому количество выживших женщин больше, чем количество выживших мужчин и погибших женщин.

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 ()

Original size 786x722

Круговая диаграмма. Распределение пассажиров по классам кают.

В данном случае, распределение пассажиров по классам представлено выше. Интересно, что в сумме пассажиров 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 ()

Original size 1328x852

Зависимость выживаемости от класса каюты

Как известно, пассажиры 3-го класса дальше всех были расположены от шлюпок. Следовательно, им сложнее было добраться до спасательных средств.

Original size 602x389

Каюта третьего класса

Заключение

Этот анализ оказался весьма интересным. В целом, он подтвердил мои догадки, но также дал возможность узнать что-то новое в этой теме.

Original size 900x600
Титаник — анализ пассажиров
4