如何用Python分析泰坦尼克号生还率?

还没关注?

640?wx_fmt=png

快动动手指!

1912年当时世界上最大的豪华客轮泰坦尼克号在处女航中撞上冰山沉没,船上船员及乘客共有2224人,只有710人生还。当灾难突然降临时,所有人的生死瞬间成了魔鬼撒旦手中的骰子,一切充满了随机性,究竟什么样的人更容易获得命运之神的垂青?幸存者具有哪些共同特点?让我们一起来用Python探索问题吧!


主要探寻坦尼克号上的生还率和各因素(客舱等级、年龄、性别、上船港口等)的关系。


01 获取数据


我把原始数据 titanic-data.csv 放在和 notebook 文件同一目录下,然后通过read_csv 来载入文件,当然在开始载入数据前,我必须按照需求将需要用到的 Python 包导入进来。


 
 


640?wx_fmt=png


 
 


 
 


02 数据观察


载入 titanic-data.csv 到一个 DataFrame ,然后用 head() 函数打印出前5行数据(p.s 用 tail() 函数可以打印出后5行)。


通过对数据的初步观测,这个数据样本一共有 891 行 * 12 列数据,字段包含:


‘PassengerId(乘客id)’, ‘Survived(是否活下来)’, ‘Pclass(船舱等级)’, ‘Name(姓名)’, ‘Sex(性别)’, ‘Age(年龄)’, ‘SibSp(兄弟姐妹同行数量)’,‘Parch(父母配偶同行数量)’, ‘Ticket(票)’, ‘Fare(费)’, ‘Cabin(船舱)’, ‘Embarked(上船站)’


其中, 定类变量包括 Survived,Sex,Embarked, 定序变量 包括 Pclass, 数字变量 包括 PassengerId,Age,SibSp,Parch,Fare


通过观测发现,Age、Cabin、Embarked 包含了有空值


 
 


 
 
03 变量的值


Survived 的值:0(死亡),1(存活)

Sex 的值:male(男性),female(女性)

Embarked的值包含 ‘S’ ‘C’ ‘Q’


 
 


 
 
04 重复数据


数据集一共有 891 行数据,不重复。


 
 


 
 
05 空值情况


Age 一共有 714 行空数据

Cabin(船舱)一共有 204 行空数据

Embarked(上船站)一共有 2 行空数据。


 
 


640?wx_fmt=png


06 描述性统计


在这次旅行的 891 名乘客中,有 38% 的人活了下来,幸运儿。


所有旅客中,年龄最小的只有 0.4 岁,最大的有 80 岁,平均年龄在 28 岁左右。


平均每个乘客有 0.52 个兄弟姐妹陪同,有 0.38 个父母配偶陪同。


有些乘客居然有 8 名同行的人。


旅客为这趟旅行平均花费 32 美元,最高花费 512 美元(贵族吧)


07 数据清洗(cleanse the data)


缺失值处理中,我们一般会删除缺失值。pandas模块中,提供了将包含NaN值的行删除的方法dropna(),但其实处理缺失值最好的思路是用最接近的数据替换。


首先,清洗数据就是处理空值,让这些空值参与到之后的数据分析中去。其次,我将删除那些对于数据分析本身并没有相关性的数据列,比如Cabin(因为一个船舱号对于是否能够逃生确实没有任何影响)。


最后,我会观察数据集,看看是否可以创造出一些新的特性,让我们的分析能够更直观快捷。


 
 


 
 


08 处理空值和多余的值


上面用年龄的平均数来代替空值,因为 ‘S’ 出现的频数最多,咖位最高,所以用 ‘S’ 代替空值。


我删除掉了 ‘Ticket’,‘Cabin’ 两列数据,实际上这两列数据对于我们分析数据并没有太多用处。


09 数据可视化分析


数据透视表是 Excel 中最常用的数据汇总分析工具,它可以根据一个或多个制定的维度对数据进行聚合,探索数据内深层次的信息。


在 pandas 中,同样提供了pandas.pivot_table 函数来实现这些功能。在接下来的分析中,我们会多次用到这个函数,所以先来熟悉下下这个函数:


pandas.pivot_table 函数中包含四个主要的变量,以及一些可选择使用的参数。四个主要的变量分别是数据源 data,行索引 index,列 columns,和数值 values。可选择使用的参数包括数值的汇总方式,NaN值的处理方式,以及是否显示汇总行数据等。


10 基本情况分析


我们先来看下基本情况:891人当中,生还比率与未生还比率是多少?


 
 

640?wx_fmt=png


结论:这891名乘客中,生还和未生还的比率分别为 38% 和 62%。


分别探索下 Pclass、Sex、Age 和 Embarked 等与“生还率”的关系,舱位(Pclass)与生还率关系


把 pivot_table 派上场。


 
 


640?wx_fmt=png


传几个参数就出来了,是不是很方便。


如果不使用 pivot_table 函数,我们一般用 group_by 来分组聚合


 
 


640?wx_fmt=png


比较来说,pivot_table 函数可读性更高。


可视化操作


 
 


640?wx_fmt=png


还可以用饼图。


 
 


640?wx_fmt=png


好了,这是不同舱位的人数分布情况,我们需要求出的是舱位与生还率的关系。


舱位与生还率的关系


 
 


640?wx_fmt=png



可视化操作


 
 


640?wx_fmt=png


结论:头等舱的生还概率最大,其次是二等舱,三等舱的概率最小。


性别(Sex)与生还率关系


 
 


640?wx_fmt=png


 
 


640?wx_fmt=png


结论:女性幸存概率远远大于男性。


综合考虑性别(Sex),舱位(Pclass)与生还率关系


 
 


640?wx_fmt=png



可视化操作


 
 


640?wx_fmt=png


结论


 · 在各个船舱中,女性的生还率都大于男性。

 · 一二等船舱中女性生还率接近,且远大于三等舱。

 · 一等舱的男性生还率大于二三等舱,二三等舱男性生还率接近。


年龄(Age)与生还率关系


与上面的舱位、性别这些分类变量不同,年龄是一个连续的数值变量,一般处理这样的数据类型,我们采用将连续性的变量离散化的方法。


所谓离散化,指的是将某个变量的所在区间分割为几个小区间,落在同一个区间的观测值用同一个符号表示,简单理解就是将属于统一范围类的观测值分为一组。然后分组观察。


pandas中提供了cut函数,对变量进行离散化分割。


 
 


 
 



各个年龄段的生还率


 
 


640?wx_fmt=png


可视化操作


 
 


640?wx_fmt=png


结论:儿童少年组的生还率更高。


11 多因素分析


以上是单独看年龄/性别/舱位和生还率的关系,下面我们综合多个因素来看生还率。


年龄(Age),性别(Sex)与生还率关系


 
 


640?wx_fmt=png


可视化操作


 
 


640?wx_fmt=png


结论:儿童少年,女性的生还率更高。男性生还的基本上都是儿童少年。


年龄(Age),性别(Sex),舱位(Pclass)与生还率关系


 
 


640?wx_fmt=png


可视化操作



640?wx_fmt=png


总结


本次分析主要探寻泰坦尼克号上的生还率和各因素(客舱等级、年龄、性别、上船港口等)的关系。


样本数量为 891,海难发生后,生还者还剩 342 人,生还率为 38%。


泰坦尼克号上有一/二/三等舱三种船舱类型,其中头等舱的生还概率最大,其次是二等舱,三等舱的概率最小。


891人中,男性共577人,女性314人,女性生还率远远大于男性。可见女性比男性在这次事故中更容易生还,表明“女士优先”的原则在本次事故中得到了发扬。


样本的 891 人中,最小年龄为 0.42 ,最大年龄 80。按照[(0.34, 16.336] < (16.336, 32.252] < (32.252, 48.168] < (48.168, 64.084] < (64.084, 80.0]]划分原则,划分为5组,儿童少年组的生还率最高,年龄越大,生还率越低。“尊老爱幼”的原则在本次事故中没有很好体现。


样本的 891 人中,从 C 上船的生还率最高, Q上船的 次之,S上船生还率 最低。


最后需要说明的是,此次数据分析的数据集是从总体中抽样而来的,如果抽样无偏,样本是从总体随机选取,根据中心极限定理,分析结果具有代表性,如果不是随机选出,那么分析结果就不可靠了。


数据分析1480

640?wx_fmt=png

长按扫码关注我

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值