泰坦尼克号python数据分析统计服_数据分析新搭档,Python+PowerBI,再次探索泰坦尼克号,谁能被救...

本文通过少量Python代码配合PowerBI,对泰坦尼克号生还数据进行深入分析。研究了性别、年龄、乘客等级等因素如何影响生还率,并利用PowerBI的动态可视化揭示数据背后的故事。结果显示,女性和儿童的生还率较高,而男性生还率较低。此外,购买套票的乘客生还率也显著高于单独购票者。
摘要由CSDN通过智能技术生成

279759ee3d6d55fb438655f671fb5d4f22a4ddf8.jpeg?token=764ae359160e11d3560282486ffb5b9c&s=741AC83384C07EEA4B54D6E40300E021

后续更多干货资料,请关注!!!

前言

本号之前就已经有一篇文章关于探索《泰坦尼克号》的生还数据案例,文章中完全使用 Python 分析出一系列数据背后的逻辑。

但是,在探索分析中需要经常在不同维度中输出数据可视化,说实在的,我连一句代码都不想写!

今天,我使用极少量 Python 代码(就3句 pandas 相关代码) 加上 微软的商业智能分析神器 Power BI ,再次探索此数据。像侦破案件一样,一步步通过可视化动态关联图表,找到数据之间的关系。

由于文章篇幅太长,为了文章的阅读性和连贯性,因此案例分为3篇文章完成(分析,实现,思路),此文是分析篇,虽然不涉及代码和实现,但内容是3篇文章的核心。

数据说明

本文案例数据来自于一份公开的关于"泰坦尼克号遇难事件"的数据。部分记录如下图:

35a85edf8db1cb135f735351c08d444b93584bb3.jpeg?token=162aac78881eb4d091e74202191be0b0&s=80704D3285715823106511DA0200E0B1

survived ,1:生还;2:没有生还sex ,male:男;female:女我很喜欢用描述来表示一份数据,这数据反应的信息, 如下,其中括号中的是对应的字段:

船上的一位乘客 jack(name)男性(sex),20岁(age)他拿着价值35美元(fare)船票(ticket),在 xxx 港口(embarked) 上船他的房间在头等舱(pclass) 的305号房(cabin)他在这次事件中被获救(survived)来看看基本的字段信息

503d269759ee3d6d2b6c3a225fcf7f274d4ade8b.jpeg?token=6de1e986bd919b704a0396429c3d6c50&s=E9E2336652E5915F40E0B41A0000E0C3

共1309条数据。一行表示一位乘客年龄、港口都有少量数据缺失其他有些字段有大量缺失设立分析方向

我们这次需要探索到底谁更有可能生还,从数据中各个字段中可以知道如下信息:

类别字段有:性别、船票、港口、船舱、乘客等级、是否生还连续值字段有:年龄、票价其中 是否生还 是一个重要字段我们可以使用不同的类别字段,通过对是否生还做统计,设定下列分析方向:

性别、乘客等级、港口 ,是否与生还率有关系?年龄大小是否与生还率有关系?注意,本文的分析不局限于上面列出的问题,接下来你会看到,在分析过程中我们会发现新的线索

环境与工具

本文需要用到以下环境

Python 的 pandas 包,强烈建议你安装 Anaconda。Power BI Desktop(免费版)。可自行到官方网站下载

c8177f3e6709c93d7d8eb85a83e4ead9d0005478.jpeg?token=52af9b4786173e91166aa7bf9fa50570&s=DC101698D24B1CEB5010A4C1030030B9

故事报告

报告的第一页,名字叫"整体状况",看看动图,我们是怎么快速发现问题

894a7f6780807097ce7f073aef8071d04011.gif

这页上的所有图表都可以交互关联比如想看第一个年龄段(17岁以下)的生还率,只需要点击一下右上图第一个条形,左边的性别柱状图马上变化,以反映17岁以下的性别生还率情况中间部分的人数显示也会变动下方的数据表也会同时根据当前筛选改变分析一下以上的过程

54fbb2fb43166d2283301d835bfa1bf29152d244.jpeg?token=671ef47e85b01298a1089af27bacf6aa&s=2BA07122C5664D2299C2D14A020030F9

整体生还率不足40%性别图中可以看到,女性的生还率高出男性很多!如果你熟悉电影《泰坦尼克号》的情节就知道,整个救援工作的核心是"lady first"!从年龄段图看,17岁以下的孩子生还率高出其他年龄段,毕竟紧要关头还是要照顾小孩子发现线索

当我们点击右上图第一个条状时,可以看到左边的性别生还率分布有不一样的变化。如下图:

cf1b9d16fdfaaf51dba78d94918d86ebf11f7ab6.jpeg?token=1a0dbec99398fd5cd4defe640cc7a4d3&s=39AC533285F27D205048F448020060F9

男女的生还率差距马上缩少了许多这可以看出,"女士得到优先救援"这一原则,在17岁以下的人士中,相对其他年龄段变得不太明显。看到是孩子,管他是男是女,先救起来再说!此时有人提出质疑,只是这样不能下定论啊,有可能17岁以下的男生人数很少,而又刚好他们大部分被救,也可以导致上图的结果。

来看看我们怎么用数据消除质疑。

关联跳转

此时你可能会想看看17岁以下的男女人数分布,没问题!看以下动图:

ab0fff96b2646e1899cad31073544ad38855.gif

直接在17岁以下年龄段的条形图中直接跳转到年龄分布图你可以在不同的年龄段跳转跳转后的分布图会显示对应的年龄段分布左上角有返回按钮,方便你退回跳转前的位置细看一下17岁以下的分布图,如下:

b17eca8065380cd7ab1f68dfbf9dbf31588281d9.jpeg?token=a5539b93c535d5b2323f298710ea4f68&s=19A25F32317BE02108F825D3020010B2

可以看到,男生与女生的数量基本一致在15到16岁这段中,男生的数量还比女生要多其实第一页报告中的中间部分有显示男女人数

目前为止,我们得到以下分析结果:

女性比男性更可能生还小孩子(17岁以下)更可能生还小孩子(17岁以下)中,性别影响相对较少对性别生还率进行探索

刚刚我们只是重点分析了每个年龄段的影响,现在试试重点看看性别,却发现了问题。看以下动图:

e8abacc3ac4e3ca5ec3c142fd519aab66027.gif

分别点击性别生还率图的男性和女性的柱状下面通过静态图分析,方便读者查看。以下是女性的年龄段图:

8c1001e93901213fae98429b483e24d42e2e952f.jpeg?token=56b8fea1272048afda15a2b2a7e6ac59&s=AB8B5322DCBA64090C770B530200C0FE

在女性中,根本无视年龄的区别,17岁以下的女生生还率反而没有其他年龄段高!注意图中的浅色区域,是整体的生还率。可以看出来,女性的每个年龄段的生还率都远远高于整体看看男性的年龄段图:

cf1b9d16fdfaaf51f2e6d506908d86ebf11f7a5b.jpeg?token=428ddb6096e24ae41e2eb54ab1b7c687&s=2B8253228C14F609824E06580200C0FE

在男性各年龄段中,则体现了之前的分析男性的每个年龄段的生还率都远远低于整体原来是男性把每个年龄段的生还率给拉下来了。

重大发现

在第一页的报告下方有显示数据,来看看17岁以下的数据,才发现一直忽略了一个重要因素!如下图:

cc11728b4710b912d86a4a4cde24ee0693452232.jpeg?token=ed85b1adef81aa7c9d0bfebaf9c815b0&s=4550E53397B34823586525DA0100D0B3

从名字列可以看到,他们是有关系的(兄弟姐妹)看 ticket 列,他们的票号是一样的我们一直没有注意到,这里还有套票的情况,从"是否套票"可以看出来是否一家人或朋友,反正就是一起买票一起上船我们把买套票的人归类为"有组织人士"(名字怪怪的??),其他人归类为"独自一人",制造出第二页报告——单身生还率。来看看动态图:

b2d70e1e16ad20daab32d69651bb06f42311.gif

鼠标只要移到上方堆积图中的每一格,即显示对应的船舱等级人数比例饼图右下图可以分别点击2个柱状,查看情况下面来仔细分析。

先看看整体情况

ac6eddc451da81cb7fbad39f4ebfc21308243165.jpeg?token=5f6b2f90bd7be7ad0788c5433cc1bba5&s=6BA431620656D63B9E7B40550200D0E2

整体来看,有组织的人比其一个人上船的,生还率足足高了近一倍!看看各年龄段的分布:

4afbfbedab64034f45987e80b21a6b340b551d38.jpeg?token=ad5fb071c0929e17085d55c9a85e8bd4&s=2FA677239653FE3B3663DA520200C0FD

竟然还有17岁以下还独自上船的!怎么回事?鼠标移到那里,从饼图中看出,全是3等舱的!难道是偷渡客??我们在第一页的报告中已经尝试过跳转到年龄分布图,这里同样可以(不需要再次设置),操作与之前一致。来看看,17岁以下并且独自一人的分布图如下:

8601a18b87d6277f51111efa34e10d35eb24fccb.jpeg?token=5752c1b2ff7f2e1bedc861b342c9598a&s=279277225825FB0B42569849020070FD

d1a20cf431adcbefca27c2f7b0763cd8a2cc9f0a.jpeg?token=57b7da00efa8d21faa1f2684368fcd3f&s=4BA235624D2AE52018D481DA000060B1

有一名9岁的孩子,其他都是13岁以上其中15和16岁的人数最多暂时没能分析出他们是否一伙

34fae6cd7b899e51f464b3865e7ecb36ca950d9c.jpeg?token=b2e5ef3f82698a9129ae8b39a6787f53&s=71762872EFB06E900A6850DF02008030

其他分析

由于篇幅所限,本文没有对其他字段的分析做说明,比如:

通过 pclass 与 年龄分布可以知道,坐头等舱的大部分是上了年纪的(这是常识吧)通过 pclass 与 生还率的分析,可以知道,头等舱的生还率非常高,这可能有一部分原因是特别照顾有名望的人士通过 cabin 同样可以分析出,某些房间会有更高的生还率,Kaggle 上有人通过关于当年泰坦尼克号的船结构分析出每个房间的位置,更靠近甲板的房间更可能获救以上部分的分析,在报告中是做出来了的,有兴趣的小伙伴请自行下载查看。

最后

在数据探索分析(EDA)中经常需要对不同维度进行数据分析可视化,如果全过程使用 Python 会很不方便。Power BI 正好弥补了这一点,他可以快速输出关联动态图表,并且他也支持在数据处理环节与可视化环节中使用 Python(重点是pandas),这大大提高生产效率。

下一篇将是实现篇,全过程从0教会你制作上述分析报告。

请关注本号,后续会有更多相关教程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值