当前位置: 首页 > news >正文

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析

      • 1、泰坦尼克号数据集
      • 2、数据集加载与概览
      • 3、泰坦尼克号幸存者数据分析
      • 4、哪些人可能成为幸存者?



1、泰坦尼克号数据集


泰坦尼克号的沉没是世界上最严重的海难事故之一,造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮,船上的人年龄各异,背景不同,有贵族豪门,也有平民旅人,邮轮撞击冰山后,船上的人马上采取措施安排救生艇转移人员,从本次海难中存活下来的,也就是幸存者

泰坦尼克号数据集为1912年泰坦尼克号沉船事件中相关人员的个人信息以及存活状况。包含了2224名乘客和船员的姓名、性别、年龄、船票等级、船票价格、船舱号、登船港口、生存情况等信息。这些历史数据已经被分为训练集和测试集,我们可以根据训练集训练出合适的模型并预测测试集中的存活状况

数据集来源:https://www.kaggle.com/c/titanic

数据集下载:传送门

数据集各文件介绍:

  • gender_submission.csv:乘客编号与是否幸存记录
  • train.csv:训练集
  • test.csv:测试集

数据集(训练集和测试集)的属性信息(11特征+1标签)如下:

特征/标签说明
PassengerId乘客编号
Survived是否幸存,1是0否
Pclass船舱等级,1(一等)、2(二等)、3(三等)
Name乘客姓名
Sex乘客性别
Age乘客年龄
SibSp与乘客同行的兄弟姐妹及配偶人数
Parch与乘客同行的父母及子女人数
Ticket船票编号
Fare船票价格
Cabin乘客座位号
Embarked乘客登船码头,C(Cherbourg)、Q(Queenstown)、S(Southampton)

2、数据集加载与概览


1)加载数据集

import pandas as pd
import numpy as nppath = r"C:\Users\cc\Desktop\titanic_dataset\train.csv"
# 加载数据集
data = pd.read_csv(path, encoding='utf-8')
# 数据集前5行
print(data.head().to_string())
'''PassengerId  Survived  Pclass                                                 Name     Sex   Age  SibSp  Parch            Ticket     Fare Cabin Embarked
0            1         0       3                              Braund, Mr. Owen Harris    male  22.0      1      0         A/5 21171   7.2500   NaN        S
1            2         1       1  Cumings, Mrs. John Bradley (Florence Briggs Thayer)  female  38.0      1      0          PC 17599  71.2833   C85        C
2            3         1       3                               Heikkinen, Miss. Laina  female  26.0      0      0  STON/O2. 3101282   7.9250   NaN        S
3            4         1       1         Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1      0            113803  53.1000  C123        S
4            5         0       3                             Allen, Mr. William Henry    male  35.0      0      0            373450   8.0500   NaN        S
'''

2)数据集大小

# 数据集的大小
print(data.shape)    # (891, 12)

泰坦尼克号数据集(训练集)有891个样本,12个特征和标签

3)特征和标签

# 数据集的特征和标签
data.info()

结果如图所示:

在这里插入图片描述
泰坦尼克号数据集的特征和标签及对应数据类型如上图所示

4)数据缺失情况

# 数据集的缺失情况
print(data.isnull().sum())

结果如图所示:

在这里插入图片描述
从结果可见,泰坦尼克号数据集中的乘客年龄和乘客座位号有大量缺失

3、泰坦尼克号幸存者数据分析


问题提出: 哪些人可能成为幸存者?

在回答这个问题之前,我们先来看一下泰坦尼克号全员整体的获救比例

1)获救比例

# 获救人数占比
survive_ratio = data['Survived'].value_counts(normalize=True).reset_index()
print(survive_ratio)
# 幸存者占比:38.4%;遇难者占比:61.6%

结果如图所示:

在这里插入图片描述
结论1:泰坦尼克号幸存者仅占全员人数的38.4%

2)性别特征对获救率的影响

a、 男性乘客与女性乘客占比

# 男性乘客与女性乘客占比
mf_count = data['Sex'].value_counts().reset_index()
print(mf_count)
# 男性乘客:577人,女性乘客:314人

结果如图所示:

在这里插入图片描述
b、 男性乘客与女性乘客的获救率

# 男性乘客与女性乘客的获救率
mf_ratio = data['Survived'].groupby(data['Sex']).value_counts().reset_index()
# 合并
mf_data = pd.merge(mf_ratio, mf_count, how='left', on='Sex')
mf_data['rescue_ratio'] = mf_data['count_x'] / mf_data['count_y']
print(mf_data)
# 男性乘客获救比例:18.9%,女性乘客获救比例:74.2%

结果如图所示:

在这里插入图片描述
结论2:女性乘客总人数比男性少,但是获救人数却比男性乘客要多。性别特征对获救概率影响较大

3)船舱等级特征对获救率的影响

a、 各船舱等级乘客占比

# 各船舱等级乘客占比
pc_count = data['Pclass'].value_counts().reset_index()
print(pc_count)
# 一等:216人,二等:184人,三等:491人

结果如图所示:

在这里插入图片描述
b、 各船舱等级乘客的获救率

# 各船舱等级乘客的获救率
pc_ratio = data['Survived'].groupby(data['Pclass']).value_counts().reset_index()
# 合并
pc_data = pd.merge(pc_ratio, pc_count, how='left', on='Pclass')
pc_data['rescue_ratio'] = pc_data['count_x'] / pc_data['count_y']
print(pc_data)
# 一等获救比例:62.9%,二等获救比例:47.3%,三等获救比例:24.2%

结果如图所示:

在这里插入图片描述
结论3:一等船舱获救比例最高,三等船舱获救比例最低。船舱等级对于乘客的获救率存在较大的影响

4)各船舱等级中的性别特征对获救率的影响

a、 不同船舱等级的男女乘客人数

# 不同船舱等级的男女乘客人数
ps_count = data['Sex'].groupby(data['Pclass']).value_counts().reset_index()
print(ps_count)
# 一等:男122人,女94人,二等:男108人,女76人,三等:男347人,女144人

结果如图所示:

在这里插入图片描述
b、 不同等级船舱的男性乘客与女性乘客的获救率

# 不同等级船舱的男性乘客与女性乘客的获救率
ps_ratio = data['Survived'].groupby([data['Pclass'], data['Sex']]).value_counts().reset_index()
# 合并
ps_data = pd.merge(ps_ratio, ps_count, how='left', on=['Pclass', 'Sex'])
ps_data['rescue_ratio'] = ps_data['count_x'] / ps_data['count_y']
print(ps_data)
# 一等获救比例:男39.9%,女96.8%,二等获救比例:男 15.7%,女92.1%,三等获救比例:男13.5%,女50.0%

结果如图所示:

在这里插入图片描述
结论4:各等级船舱中男性乘客多于女性乘客,但是女性乘客的获救比例都高于男性乘客。不同等级船舱的女性乘客的获救率高于男性,这可能是女士优先的原因

4、哪些人可能成为幸存者?


根据上述分析结果,我们可以得到以下两个关于乘客获救率的结论:

  • 在泰坦尼克号上,女性的获救率高于男性
  • 高等级船舱的乘客获救率高于低等级船舱

另外,我们也可以从年龄等其他角度进行分析,有兴趣的小伙伴可以自行尝试



参考文章:https://zhuanlan.zhihu.com/p/129247887


http://www.lryc.cn/news/333016.html

相关文章:

  • Memcached 教程之 PHP 连接 Memcached 服务(十)
  • 【zlm】音视频流与音频流合并的设计
  • typescript的工作流
  • MATLAB下载与安装详细教程:从官方获取到成功启动
  • 【随笔】Git 高级篇 -- 分离 HEAD(十一)
  • mac、windows 电脑安装使用多个版本的node
  • vue 浅解watch cli computed props ref vue slot axios nexttick devtools说明使用
  • Unity自定义框架(1)-----------单例模式
  • 04-自媒体文章-自动审核
  • LeetCode-热题100:763. 划分字母区间
  • IDEA2023创建SpringMVC项目
  • ubuntu-server部署hive-part2-安装hadoop
  • Python深度学习032:conda操作虚拟环境env的全部命令
  • 使用Java拓展本地开源大模型的网络搜索问答能力
  • Mybatis——一对多关联映射
  • Pytorch实用教程:TensorDataset和DataLoader的介绍及用法示例
  • uni-app如何实现高性能
  • docker 应用部署
  • java.awt.FontFormatException: java.nio.BufferUnderflowException
  • C++ 枚举类型 ← 关键字 enum
  • MySQL故障排查与优化
  • 如何做一个知识博主? 善用互联网检索
  • 《QT实用小工具·十》本地存储空间大小控件
  • 作为一个初学者该如何学习kali linux?
  • 多线程学习-线程池
  • Linux第4课 Linux的基本操作
  • 堆排序解读
  • docker + miniconda + python 环境安装与迁移(详细版)
  • 蓝桥杯刷题第八天(dp专题)
  • 【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】