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





    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 np
    
    path = 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
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2)数据集大小

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

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

    3)特征和标签

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

    结果如图所示:

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

    4)数据缺失情况

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

    结果如图所示:

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

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


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

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

    1)获救比例

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

    结果如图所示:

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

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

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

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

    结果如图所示:

    在这里插入图片描述
    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%
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果如图所示:

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

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

    a、 各船舱等级乘客占比

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

    结果如图所示:

    在这里插入图片描述
    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%
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果如图所示:

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

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

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

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

    结果如图所示:

    在这里插入图片描述
    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%
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果如图所示:

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

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


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

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

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



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


  • 相关阅读:
    Shell脚本-case in语句
    电气滑环更换原因分析
    iPhone手机屏幕分辨率
    JAVA学习(2)-全网最详细~
    Pytest接口测试框架实战项目搭建(二)
    echarts 中如何添加左右滚动条 数据如何进行堆叠如何配置那些数据使用那个数据轴
    传统 IAM 已成为企业增长桎梏,下一代身份基础设施如何帮助企业破局?
    通过map获取json指定字段
    记录路由配置之显示进度条
    Docker导入/导出
  • 原文地址:https://blog.csdn.net/weixin_55629186/article/details/137353028