
Почему именно 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): портрет пассажиров через возраст

Этапы работы
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 лет
2. Стилизация графиков
Цветовая схема: • #FF6B6B (красный) — риск, гибель • #FFD166 (желтый) — средний риск • #4ECDC4 (бирюзовый) — спасение • #1A535C (темно-синий) — океан, мужчины Параметры: figsize=(8,5), dpi=100, четкие границы, академическая сетка.
График 1: Процент выживаемости
Объяснение: value_counts () считает 0/1, plt.bar () строит столбцы, savefig () сохраняет PNG.
Этот столбчатый график показывает абсолютное распределение выживших и погибших: из 891 пассажира выжило 342 человека (38%), а 549 — нет (62%). Красный столбец «Не выжил» доминирует, подчеркивая трагический масштаб катастрофы — более половины людей не дожили до спасения. Анализ выявляет низкую общую выживаемость, типичную для внезапной аварии без достаточных шлюпок (лишь на 1178 мест при 2224 пассажирах и экипаже). Это базовый инсайт, задающий контекст для дальнейшего разбора: дальнейшие графики покажут, кто имел преимущество в доступе к спасению.
График 2: Выживаемость по классу билета
Столбчатая диаграмма иллюстрирует долю выживших по классам: 1-й класс — ~63%, 2-й — ~47%, 3-й — всего ~25%. Градиент цветов от красного (низкая выживаемость) к зеленому (высокая) подчеркивает социальное неравенство. Анализ подтверждает приоритет элите: пассажиры 1-го класса располагались ближе к шлюпкам на верхних палубах, имели влияние на офицеров и лучше понимали инструкции. В 3-м классе (нижние палубы, иммигранты) барьеры и хаос снижали шансы — это отражает классовую структуру общества 1912 года.
График 3: Распределение возраста пассажиров
Гистограмма с 20 бинами показывает возрастной профиль: пик в 20–30 лет (молодые взрослые), средний возраст ~29,7 лет, диапазон от 0,4 до 80 лет. Распределение слегка правостороннее, с хвостом пожилых. Анализ указывает на типичную демографию трансатлантических рейсов: много трудоспособных мигрантов. Дети и пожилые составляют меньшинство, что влияет на выживаемость (женщины и дети первыми в шлюпки). Возраст коррелирует с классом — элита постарше, что усиливает их шансы.
График 4: Доля выживших по полу
Столбцы демонстрируют гендерный разрыв: женщины — 74% выживаемости, мужчины — лишь 19%. Синий для мужчин и красный для женщин визуально усиливают контраст. Анализ отражает политику «женщины и дети первыми»: капитан Смит и офицеры следовали морскому этикету эпохи, спасая 74% женщин против 19% мужчин. Это спасло жизни, но выявило жертвенность мужчин (в основном рабочих 3-го класса). Фактор пола доминирует над классом в модели логистической регрессии.
Код выводит ключевые статистические показатели, чтобы быстро понять структуру данных и сделать первые выводы.
1. Заголовок и оформление
«\n» — начинает вывод с новой строки. «=»*50 — создает строку из 50 знаков «=» для визуального разделения. Это делает вывод в консоли аккуратным и читаемым.
len (df) — возвращает количество строк в DataFrame, то есть общее число пассажиров в наборе данных.
3. Общая выживаемость
df['survived'] — столбец, где 1 означает «выжил», 0 — «не выжил». .mean () — для бинарных данных (0/1) среднее арифметическое равно доле единиц (то есть доле выживших). Умножаем на 100, чтобы получить проценты. :.1f — форматирование: вывести число с одним знаком после запятой.
4. Статистика по возрасту .mean (), .min (), .max () — стандартные статистические методы для числового столбца age. :.0f — форматирование без знаков после запятой (для целых лет).
5. Выживаемость по полу (ключевой фактор!)
Логика фильтрации: df[df['sex']=='female'] — создает «подтаблицу» (DataFrame), в которой остались только женщины. Затем для этой подтаблицы берется столбец ['survived'] и считается его среднее .mean (), что дает долю выживших среди женщин.
Аналогично для мужчин.
📊 ПРОСТАЯ СТАТИСТИКА:
Всего пассажиров: 891 Выжило: 38,4% (342 человек) Не выжило: 61,6% (549 человек) Средний возраст: 29.4 лет Минимальный возраст: 0 лет Максимальный возраст: 80 лет Выживаемость женщин: 74,2% Выживаемость мужчин: 18,9% Выживаемость 1-го класса: 63,0% Выживаемость 3-го класса: 24,2%
Портрет выжившего на «Титанике»: Женщина 1-го класса (95% шанс) — верхние палубы, приоритет к шлюпкам Женщина 2-го класса (~90%) — средний класс с доступом Мужчина 1-го класса (~45%) — влияние на офицеров Мужчина 3-го класса (13%) — трюмы, баррикады, жертвенность
Уроки истории в цифрах: • Класс билета решал физическое положение на судне • Морской этикет 1912 года спас тысячи женщин • Миграция задокументирована: молодые европейцы ехали к «американской мечте».
📚 Материалы
Датасет: встроен в Seaborn (891 строк) Модели: • DeepSeek Coder — доработка кода (25%) • Perplexity AI — текст (70%)
Авторский вклад: 75% кода, структура анализа, историческая интерпретация — написано мной.