在第一节“Python-数据清洗与分析案例之泰坦尼克号(一)”网址:https://www.lixdx.cn/archives/93 中进行了数据清洗与缺失值填充,接下来进行数据可视化分析,找到生存率的影响因素。

注意:本章中年龄的缺失值为案例分析(一)中用年龄和舱位的中位数的值填充。

提出问题:什么因素会影响乘客的生还率?

影响乘客生还率的因素很多,这里只讨论乘客的性别、年龄以及舱位是否对生还率产生影响。

1.性别对生还率的影响

2.年龄对生还率的影响

3.舱位对生还率的影响

4.年龄和性别共同对生还率的影响

5.年龄和舱位共同对生还率的影响

6.性别和舱位共同对生还率的影响

7.年龄、性别、舱位共同对生还率的影响

这里,年龄、性别、舱位是自变量,生还率是因变量。

(年龄、舱位是数值变量;性别是分类变量)

一、导入包

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值

二、数据可视化分析

2.1 性别对生还率的影响

首先,绘制全体乘客的性别比例图

方法一:运用value_counts()函数及pandas数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_02

方法二:运用groupby( )分组函数及matplotlib数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_03

其次,绘制生还乘客的性别比例图

方法一:运用value_counts()函数及pandas数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_04

方法二:运用groupby( )分组函数及matplotlib数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_05

最后,绘制不同性别的生还率

运用seaborn中的barplot绘图,因为柱状图sns.barplot( )显示的是某种分类变量分布的平均值,例如male计算的则是生还的男性除以所有的男性,也就是男性的生还率。

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_06

结论:

全部乘客中,只有35.24%的女性,而生还的乘客中,女性占到了68.13% 。 女性的生还率达到了74.2%,而男性的生还率只有18.9% 。 我们可以看出,女性的生还率更高。

2.2 年龄对生还率的影响

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_07

方法一:运用seaborn数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_08

方法二:运用pandas数据可视化绘图

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_09

结论:

0-10岁生还率最高,其次30-40岁。

函数讲解

pandas.cut:

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)

参数:

- x,类array对象,且必须为一维,待切割的原形式

- bins, 整数、序列尺度、或间隔索引。如果bins是一个整数,它定义了x宽度范围内的等宽面元数量,但是在这种情况下,x的范围在每个边上被延长1%,以保证包括x的最小值或最大值。如果bin是序列,它定义了允许非均匀bin宽度的bin边缘。在这种情况下没有x的范围的扩展。

- right,布尔值。是否是左开右闭区间

- labels,用作结果箱的标签。必须与结果箱相同长度。如果FALSE,只返回整数指标面元。

- retbins,布尔值。是否返回面元

- precision,整数。返回面元的小数点几位

- include_lowest,布尔值。第一个区间的左端点是否包含

返回值:

若labels为False则返回整数填充的Categorical或数组或Series

若retbins为True还返回用浮点数填充的N维数组

2.3 舱位对生还率的影响

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_10

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_11

可以看出三等舱的乘客最多,但生还率却最低。

结论:

“1”等级的生还率>“2”等级>”3″等级 ; “1”等级的生还率最高

2.4  年龄和性别与生还率的关系

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_12

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_13

从图中看出:年龄段在50-60岁之间人数最多,但这个年龄段的生还率不是最高的,而年龄较小(0~10岁)之间的生还率是最高的。

男性的人数明显多于女性,但女性的生还率明显高于男性,且女性的生还率都在40%以上。

综上可以看出,性别对生还率的影响大于年龄的影响。

2.5 年龄和舱位共同对生还率的影响

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_14

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_15

从图中看出:3舱的人数最多,但3舱的生还率最小。而在0-50岁的年龄区间,1、2舱舱的生还率都大于40%。

同一个年龄段,除了0-10岁和60-70岁区间外,1舱的生还率最高。

不同年龄段,也是生还率1舱>2舱>3舱。

2.6 性别和舱位与生还率的关系

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_16

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_17

从全体乘客图中可以看出,1号舱与2号舱的人数差不多,且都小于3号舱人数,且3个船舱中男性人数均多于女性人数。

从生还人数中来看,女性生还人数高于男性生还人数,且1号舱的生还人数高于2、3号舱生还人数。

从生还率来看,1、2号舱女性生还率最高,达到90%,3号舱女性生还率大约为50%。男性的生还率普遍低于40%,但男性1号舱的生还率高于男性2号、3号生还率。

所以,性别和舱位均对生还率产生影响。

2.7  年龄、性别、舱位与生还率关系

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_18

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_数据可视化_19

绘制年龄、舱位、性别与生还率的关系运用点图sns.pointplot( ),点图可能比条形图更有用于聚焦一个或多个分类变量的不同级别之间的比较。他们尤其善于表现交互作用:一个分类变量的层次之间的关系如何在第二个分类变量的层次之间变化。图中的点为这组数据的平均值点,即生还率。

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_20

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_21

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_22

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_数据可视化_23

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_24

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_25

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_缺失值_26

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_python可视化数据分析交互作用_27

kaggle预测泰坦尼克号生存python代码 泰坦尼克号python年龄分级_类变量_28

结论

通过分析,可以看出对生还率影响最大的因素是乘客性别,其次是等级,最后年龄段也对生还率有影响。