Исходный размер 648x909

Анализ выживших на «Титанике»

PROTECT STATUS: not protected

Почему именно Titanic

Представьте: одна ночь меняет судьбы тысяч людей. Билет 1-го класса или трюм 3-го? Женщина или мужчина? 25 лет или 60? Какие факторы решали — шлюпка или ледяная вода? Этот датасет — капсула времени 1912 года: классовое неравенство, морские традиции, волна европейской миграции в Америку. Цифры оживают, когда за ними стоят реальные истории миллионера Астора и сироты Хелен Ларсон. Идеальный кейс, где data science встречает историю.

Данные и источники

Я выбрала датасет Titanic из библиотеки Seaborn (sns.load_dataset ('titanic')) — 891 запись о пассажирах: survived (0/1), pclass (1-3), sex, age, sibsp, parch, fare, embarked, who, adult_male, deck, embark_town, alive, alone. Данные основаны на исторических записях катастрофы 15 апреля 1912 года, доступны в Kaggle, UCI ML Repository и Seaborn.

Выбор типов графиков

• Столбчатые диаграммы (графики 1,2,4): мгновенное сравнение категорий • Гистограмма (график 3): портрет пассажиров через возраст

Исходный размер 3500x1336

Этапы работы

Исходный размер 3500x705
  1. Предобработка данных

python import seaborn as sns import pandas as pd df = sns.load_dataset('titanic') # 891 строк df['age'] = df['age'].fillna(df['age'].median()) # 177 пропусков → медиана 28 лет

  1. Стилизация графиков

Цветовая схема: • #FF6B6B (красный) — риск, гибель • #FFD166 (желтый) — средний риск • #4ECDC4 (бирюзовый) — спасение • #1A535C (темно-синий) — океан, мужчины Параметры: figsize=(8,5), dpi=100, четкие границы, академическая сетка.

График 1: Процент выживаемости

Исходный размер 3676x1294

Объяснение: value_counts() считает 0/1, plt.bar() строит столбцы, savefig() сохраняет PNG.

Исходный размер 2347x1518

Этот столбчатый график показывает абсолютное распределение выживших и погибших: из 891 пассажира выжило 342 человека (38%), а 549 — нет (62%). Красный столбец "Не выжил" доминирует, подчеркивая трагический масштаб катастрофы — более половины людей не дожили до спасения. Анализ выявляет низкую общую выживаемость, типичную для внезапной аварии без достаточных шлюпок (лишь на 1178 мест при 2224 пассажирах и экипаже). Это базовый инсайт, задающий контекст для дальнейшего разбора: дальнейшие графики покажут, кто имел преимущество в доступе к спасению.

График 2: Выживаемость по классу билета

Исходный размер 3313x1373

Столбчатая диаграмма иллюстрирует долю выживших по классам: 1-й класс — ~63%, 2-й — ~47%, 3-й — всего ~25%. Градиент цветов от красного (низкая выживаемость) к зеленому (высокая) подчеркивает социальное неравенство. Анализ подтверждает приоритет элите: пассажиры 1-го класса располагались ближе к шлюпкам на верхних палубах, имели влияние на офицеров и лучше понимали инструкции. В 3-м классе (нижние палубы, иммигранты) барьеры и хаос снижали шансы — это отражает классовую структуру общества 1912 года.

Исходный размер 2671x1857

График 3: Распределение возраста пассажиров

Исходный размер 3586x1040

Гистограмма с 20 бинами показывает возрастной профиль: пик в 20–30 лет (молодые взрослые), средний возраст ~29,7 лет, диапазон от 0,4 до 80 лет. Распределение слегка правостороннее, с хвостом пожилых. Анализ указывает на типичную демографию трансатлантических рейсов: много трудоспособных мигрантов. Дети и пожилые составляют меньшинство, что влияет на выживаемость (женщины и дети первыми в шлюпки). Возраст коррелирует с классом — элита постарше, что усиливает их шансы.

Исходный размер 2655x1869

График 4: Доля выживших по полу

Исходный размер 2217x797

Столбцы демонстрируют гендерный разрыв: женщины — 74% выживаемости, мужчины — лишь 19%. Синий для мужчин и красный для женщин визуально усиливают контраст. Анализ отражает политику "женщины и дети первыми": капитан Смит и офицеры следовали морскому этикету эпохи, спасая 74% женщин против 19% мужчин. Это спасло жизни, но выявило жертвенность мужчин (в основном рабочих 3-го класса). Фактор пола доминирует над классом в модели логистической регрессии.

Код выводит ключевые статистические показатели, чтобы быстро понять структуру данных и сделать первые выводы.

Исходный размер 3529x2489
  1. Заголовок и оформление

"\n" — начинает вывод с новой строки. "="*50 — создает строку из 50 знаков "=" для визуального разделения. Это делает вывод в консоли аккуратным и читаемым.

  1. Базовая информация о пассажирах

len(df) — возвращает количество строк в DataFrame, то есть общее число пассажиров в наборе данных.

  1. Общая выживаемость

df['survived'] — столбец, где 1 означает "выжил", 0 — "не выжил". .mean() — для бинарных данных (0/1) среднее арифметическое равно доле единиц (то есть доле выживших). Умножаем на 100, чтобы получить проценты. :.1f — форматирование: вывести число с одним знаком после запятой.

  1. Статистика по возрасту .mean(), .min(), .max() — стандартные статистические методы для числового столбца age. :.0f — форматирование без знаков после запятой (для целых лет).

  2. Выживаемость по полу (ключевой фактор!)

Логика фильтрации: df[df['sex']=='female'] — создает "подтаблицу" (DataFrame), в которой остались только женщины. Затем для этой подтаблицы берется столбец ['survived'] и считается его среднее .mean(), что дает долю выживших среди женщин.

Аналогично для мужчин.

Анализ выживших на «Титанике»
Проект создан 16.01.2026
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше