文科生学Python系列17:泰坦尼克数据3(数据透视表)

第八课:案例分析 - 泰坦尼克数据

本节课将重点分析泰坦尼克号沉船事故,我们将探索是什么因素决定了最后是否生还。

我们将前面课程所学过的知识点融会贯通,举一反三。

新增知识点:

      缺失值处理:pandas中的fillna()方法

      数据透视表:pandas中的pivot_table函数


3、分析哪些因素会决定生还概率

上节课列出来的因素包括舱位/性别/年龄,和它们的组合情况,对生还概率的影响。

我们的步骤是这样的:

Step1 : 数值统计计算:分组运算 df.groupby( )

                                      数据透视表 df.pivot_table( )

Step2 : 可视化图表:seaborn.FacetGrid( ).map( ) 绘图

Step3 :结论

舱位和性别是两个分类变量,而年龄是数值变量,对于数值变量,将会使用Pandas的函数,将这样一个连续性的变量离散化,从而把它变成一个分类变量,以便进一步分析。


3-1 舱位与生还概率

计算每个舱位的生还概率

不同舱位生还概率(groupby)

用 Pclass进行分类,然后使用聚合函数mean 的方法,就得到不同舱位生还的概率。

通过这个统计可以得出,头等舱的生还概率最大,有63%,生还率随舱位的降低而递减。同学们纷纷得出结论:我们一定要学好Python努力赚钱坐头等舱啊!不要连小命都危险重重啊!

接下来我们看看今天学习的新知识点,用不同的方法得出同样结果,替代掉groupby:

不同舱位生还概率(pivot_table)

参数values指定的是要计算的值,这里是生还情况 Survived。

index 指的是这张将要生成的表的索引结构,也表示使用 Pclass 舱位数据来进行分类 。

加上聚合函数 aggfunc,这里使用 numpy 中的平均值 mean,来按照舱位数据进行分类,求 Survived 这一列的平均值。

两种方法得到同样的结果。这是得到的数据,接下来要看的是,基于数据的基础,绘制可视化图形,便于观察分析。

绘制舱位和生还概率的条形图

舱位和生还概率

我们使用的是barplot函数,传递的数据是原始数据,然后设置横坐标和纵坐标。条形图的横坐标是1/2/3表示三个舱位,纵坐标是Survived这列的平均值,按照舱位进行分类之后的均值。

我们这里观察可以发现,seaborn非常适合做统计图表,因为能直接显示纵坐标的均值。图中有三根竖线,其实y轴给的是Survived均值的点估计,竖线表示95%置信区间的范围,也就是说,这个均值有可能95%的情况落在这个范围中。要是我们不需要这个置信区间,也可以设置掉,用ci=None。

舱位和生还概率

其实这里我不是很明白“点估计”和“置信区间(音译)”到底是什么,但是看起来好像没有其他知识点重要,忽略掉吧。

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


3-2 性别与生还概率

性别与生还概率(groupby)

首先我们用groupby将数据按性别分组,然后求得生还概率。

性别与生还概率(pivot_table)

values 代表要计算的列,是 Survived 这一列。按 Sex 性别进行分类,使得结果数据中的行索引是 Sex,然后使用 numpy 中的 mean 函数来求得均值。

两种方法求得同样的结果:男性生还率是18.9%,女性是74.2%。女性生还的概率远远高出男性的。

然后我们绘制图表来显示结果:

性别与生还概率(条形图)

这就是图表和数字的差距啊!!!可视化!什么叫可视化!!!一下就能看出来明显的对比!

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


3-3 综合考虑舱位和性别的因素,与生还概率的关系

首先计算不同舱位不同性别的人的生还概率,和上面一样,有两种方法。

不同舱位不同性别的人的生还概率(groupby)

groupby 这里有两个变量,所以用列表的形式(也就是中括号),将变量传递给 groupby。同样,为了计算生还概率,用 mean 的方法来求得每一组的生还概率。

我们看到输出有两个索引,一个是舱位,一个是性别。可以看到在头等舱和二等舱的生还率中,女性的概率非常高,都超过了90%,三等舱的女性生还率只有50%,这个差距也是很大的。不管在哪个舱位来说,女性的生还概率还是远高于男性的。

不同舱位不同性别的人的生还概率(pivot_table)1

这里的 values 还是 Survived。这里的 index 就有点不同了,因为这里是两个因素,最后的结果是一个二重的索引,所以此处也要像上面一样弄成一个列表,表示将两个数据同时传递给 index,然后设置聚合的函数是 numpy 的均值。

这上面是 pivot_table 用二重索引的方法进行输出,其实 pivot_table 还有另外一种方法可以显示结果的:

不同舱位不同性别的人的生还概率(pivot_table)2

这里设置的 index 代表行索引是舱位。columns='Sex' 设置的是这个数据的列索引是性别,分为女性和男性。这里就体现了pivot_table 和 groupby 方法的差异了,pivot_table 表现得更灵活,它可以自由地设定表格的格式。

有了数据,我们来绘制图表。

舱位和生还概率,直方图

这个图是按照第一种情况下按不同生还概率绘制的直方图。

下图将展示用性别 Sex 进行分组的直方图,用的是 hue 方法,得到的是同时考虑舱位和性别两个数据的数据图了。

同时考虑性别和舱位的生还概率,直方图

在这个图中就很明显可以看出,不管在哪个舱位中,女性的生还率都远远大于男性。随着舱位的下降,生还率也在降低。

除了直方图,我们还可以绘制折线图。设置的参数内容和上面的直方图barplot是一样的。

同时考虑性别和舱位的生还概率,折线图

这个绘图函数自动帮我们进行了均值的计算,这个可以观察此处的Y轴。

这两个图(直方图,折线图)表达的结果是一样的,只是表现形式不一样。

结论在各个舱位中,女性的生还概率都远大于男性。一二等舱的女性生还率接近,且远大于三等舱。一等舱的男性生还率大于二三等舱,二三等舱的男性生还率接近。


作业8-2:

分别使用 groupby 和 pivot_table, 计算在不同舱位中男女乘客的人数。(提示,使用count)



来来来,这次展示一下我做(抄)的作业:

作业2

上面老师讲了那么久生还概率,做作业的时候看到乘客,我就还是想生还的数据,再想想审题不对啊,然后看 PassengerID,有点蒙圈。自己操作的最后一步是舱位和性别,没有 Name,得出的结果只有两个数,一个是男性一个女性的数字,没有舱位的分类。所以其实我自己的操作是错误的,上图才是正确演示。

输出没有错误提醒的时候,我是轻易放过去的,到了方法二,就被卡住了。前面老师讲了挺多次 values=‘Name’ 的意思,但是这里我不知道 values 要赋值什么呢?然后就不假思索去作业区偷看同学们的答案了:竟然是 Name!为什么我不知道还有这一列数据!?后面的 aggfunc='count' 竟然是要引号引起来的!这怎么是一个字符串呢,我的理解就是一个操作性的词汇啊,有魔法的那种,因为前面的例子是 aggfunc=np.mean 啊,这里的 mean 是没有引号的!

好吧,这节课特别长,加料全家桶。。。后面还有三小节的内容,将会在一篇文章汇总,不然第八课一节课就5篇文章也太夸张了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容