以泰坦尼克数据集为例,可视化分析不同年龄段的生存率
发布于 作者:苏南大叔 来源:程序如此灵动~

本文仅仅是个数据分析,具体来说是个数据可视化的过程,不存在机器学习的数据预测部分。主要的思路就是,把数据集的age
字段进行加工,然后按年龄段分组,最终列柱状图进行可视化对比。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:python@3.12.3
,pandas@2.2.2
,numpy@1.26.4
,xlrd@2.0.1
,openpyxl@3.1.2
,matplotlib@3.9.0
。
前置阅读
主要涉及:
- 泰坦尼克数据集的字段:https://newsn.net/say/titanic.html
- 泰坦数据集的加工处理:https://newsn.net/say/titanic-fillna.html
加载数据集
处理空值
其它网上的相关教程里面,对于age
空值的处理方式都是fillna()
,那可能是基于数据预测的目的所考虑的。本文中,由于目的并非是数据预测,而是数据可视化展示。这里对于age
空值的处理方式采用的是dropna()
。
经过处理后,正常的数据仅仅剩到了159条数据。
分组及求均值
数据分组这个比较好理解,主要是根据age
分组为“小孩, 少年, 青年, 中年, 老年”这几个范围。
输出:
数据分组,可以参考文章:
关于平均数/中位数的讨论,参考文章:
这里的平均数的结果,正好是需要的生存率的结果。所以,使用其中的mean()
方法。
为了后续的展示效果,这里可以对分组结果进行升序或降序的处理。
输出:
画图
plot
画图的问题,都可能会遇到中文显示的问题,以及横纵坐标值的问题。参考文章:
画图的基本准备代码,显示中文:
柱状图代码一
第一个画图代码,个人认为不是太好。因为它默认展示的是当前字段和索引之间的关系。有点偏离主题。

柱状图代码二
第二个代码,指定了横纵坐标,解决了关系不明确的问题。但是依然是plot
里面相对不常见的代码实现的。

柱状图代码三【推荐】
第三个代码也能解决横纵坐标的问题,还可以解决百分数的问题。

结束语
本文中,主要的研究对象是:泰坦尼克数据集中的age
字段,同时对survived
字段取平均数处理。最后对于plot
画图问题做了简单的讨论。更多苏南大叔的数据分析文章:


