泰坦尼克号幸存率研究

通过对泰坦尼克号乘客数据的分析发现,生存率与乘客的舱位等级、性别等因素密切相关。整体生存率为39%,女性及头等舱乘客生存几率更高。

总第53篇

代码区域

import pandas as pd

import numpy as np

import matplotlib

import matplotlib.pyplot as plt

%matplotlib inline#为能够jupyter在线使用matplotlib  

df=pd.read_csv('C:\\Users\\dell\\Desktop\\titanic_data.csv')

df.head(5)#先显示出前5行,观察有哪些数据

数据概况:

PassengerId:乘客序号;

Survived:最终是否存活(1表示存活,0表示未存活);

Pclass:舱位,1是头等舱,3是最低等;

Name:乘客姓名;

Sex:性别;

Age:年龄;

SibSp:一同上船的兄弟姐妹或配偶;

Parch:一同上船的父母或子女;

Ticket:船票信息;

Fare:乘客票价,决定了Pclass的等级;

Cabin:客舱编号,不同的编号对应不同的位置;

Embarked:上船地点,主要是S(南安普顿)、C(瑟堡)、Q(皇后镇)。

欲想探讨的问题: 

存活率与哪些因素有关? 猜想影响因素有:Pclass、Sex、Age、SibSp、Parch、Ticket、Cabin、Embarked。

01|泰坦尼克号整体情况:

通过下面代码可以看出泰坦尼克号整体的幸存率约为39%。

代码区域

survived_rate=float(df['Survived'].sum())/df['Survived'].count()#加float是为了让小数结果显示出来

survived_rate

out:0.38383838

02|幸存率与Pclass的关系:

可以看出两者有强烈的相关关系,Pclass等级越高(1最高),幸存率越高。

代码区域

Pclass_survived_rate=(df.groupby(['Pclass']).sum()/df.groupby(['Pclass']).count())['Survived']

Pclass_survived_rate.plot(kind='bar')#kind='bar'表示垂直柱状图、kind=‘barh’表示水平柱状图

03|幸存率与Sex的关系:

female的幸存率是male的3倍还要多。

代码区域

Sex_survived_rate=(df.groupby(['Sex']).sum()/df.groupby(['Sex']).count())['Survived']

Sex_survived_rate.plot(kind='bar')

04|幸存率与Age的关系:

通过折线图看出幸存率与Age没有明确的关系。0-10岁的幸存率要明显高于其他年龄段。

代码区域

Sex_survived_rate=(df.groupby(['Age']).sum()/df.groupby(['Age']).count())['Survived']

Sex_survived_rate.plot()

代码区域

age_train_p=df[~np.isnan(df['Age'])]  #去除年龄数据中的NaN  

ages=np.arange(0,80,10)  #0~80岁,每10岁一段(年龄最大80岁)  

age_cut=pd.cut(age_train_p.Age,ages)  

age_cut_grouped=age_train_p.groupby(age_cut) 

age_Survival_Rate=(age_cut_grouped.sum()/age_cut_grouped.count())['Survived']  #计算每年龄段的幸存率  

age_Survival_Rate.plot(kind='bar')

05|幸存率与SibSp&Parch的关系:

通过柱状图可以看出,当同行1-2个亲人朋友时的幸存率更高。(这里将SibSp与Parch统一处理)

代码区域

SibSp_Parch_survived_rate=((df.groupby(['SibSp']).sum()+df.groupby(['Parch']).sum())\

/(df.groupby(['SibSp']).count()+df.groupby(['Parch']).count()))['Survived']

SibSp_Parch_survived_rate.plot(kind='bar')

06|幸存率与Cabin的关系:

根据折线图看出没有明确的相关关系,再加上缺失数据过多687/891,所以幸存率对Cabin可以暂且不计入考虑。

代码区域

max_survived_rate=(df.groupby(['Cabin']).sum()/df.groupby(['Cabin']).count())['Survived']

max_survived_rate.plot()

print df['Cabin'].count()#除缺失值以外的数据个数

df['Cabin'].fillna(0).count()#所有数据个数

07|幸存率与Embarked的关系:

通过柱形图可以看出C、Q、S三地的幸存率依次下降。

代码区域

max_survived_rate=(df.groupby(['Embarked']).sum()/df.groupby(['Embarked']).count())['Survived']

max_survived_rate.plot(kind='bar')

综上所述:

1、泰坦尼克号整体的幸存率约为39%。

2、存活率与Pclass的关系:Pclass等级越高(1最高),存活率越高。多挣钱,坐头等舱可以提高幸存率。

3、存活率与Sex的关系:female的存活率是male的3倍还要多。女性的天生优势。

4、存活率与Age的关系:没有明确的关系,0-10岁的存活率明显高于其他年龄段。

5、存活率与SibSp&Parch的关系:当同行1-2个亲人朋友时的存活率更高。出去玩耍结1-2个伴可以提高幸存率。

6、存活率与Cabin的关系:没有明确的相关关系,再加上缺失数据过多687/891,所以存活率对Cabin可以暂且不计入考虑。

7、存活率与Embarked的关系:C、Q、S三地的存活率依次下降,不过应该和登陆地本身是没啥关系的,登陆地可能最终体现在性别、舱位等级等方面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊红的数据分析之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值