网站首页 > 技术教程 正文
今天给大家讲一个凄美的故事,有“永不沉没”的美誉的“泰坦尼克号”,1912年从英国出发,驶向美国纽约,然而不幸的是,泰坦尼克号与一座冰山相撞,泰坦尼克船体断裂成两截后沉入大西洋底,2224名船员及乘客中,1517人丧生,其中仅333具罹难者遗体被寻回,以此背景,做出本节数据分析。
一、数据来源
本节使用seaborn自带的泰坦尼克号生还乘客的数据集,其中各字节所代表的含义如下:survived alive乘客生还情况、pclass class船舱等级、sex who乘客性别、age 乘客年龄、sibsp parch是否带有家属,统一用alone字段代表是否有家属、fare船票价格、embarked和embark_town上船地点。
import numpy as np #导入库
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
titanic = sns.load_dataset("titanic")
titanic.head() #数据概览
二、问题研究
- 泰坦尼克号乘客信息的基本情况。
- 乘客信息与生还数据是否有关联。
三、数据清洗
titanic.isnull().sum() #查看是否具有缺失值
age和deck字段存在缺失值。
titanic.info() #数据情况
sns.set(style="darkgrid", palette="muted", color_codes=True)
sns.distplot(titanic[titanic['age'].notnull()]['age']) #distplot函数查看乘客的年龄分布
对年龄的缺失值处理,并且用distplot函数查看乘客的年龄分布,发现年龄呈正态分布。
titanic['age'] = titanic['age'].fillna(titanic['age'].mean())
sns.distplot(titanic['age'])
年龄呈正态分布,用年龄的均值进行缺失值的填充,再对年龄分布可视化。
sns.countplot(x="embarked",data=titanic) #绘制类别计数柱状图
titanic['embarked'] = titanic['embarked'].fillna('S')
titanic.isnull().sum()
利用正确的登船地点S进行缺失值填充。
titanic.head()
titanic = titanic.drop(['survived','pclass','sibsp','parch','who','adult_male','deck','embark_town'],axis=1)
titanic.head() #删除多余的字段,数据清洗
四、数据探索
sns.countplot(x="sex",data=titanic)
由上图可以看出,男性乘客比女性乘客多。
sns.boxplot(x='sex',y='age',data=titanic)
由上图可看出,男性与女性的年龄分布很相近,但女性乘客的年龄跨度更大一点。
sns.countplot(x="class",data=titanic)
对于船舱等级计数,第三级船舱数量最多。
sns.violinplot(x="class", y="age", data=titanic)
结合船舱等级,绘制乘客年龄分布箱线图,头等舱的年龄跨度较大,第三级船舱的中年人分布最多。
sns.countplot(x="alone",data=titanic)
对alone字段计数,单独的乘客数量更多一些。
sns.countplot(x="alive",data=titanic)
对生还字段可视化,未生还的乘客人数更多一些。
sns.countplot(x='alive',hue='sex',data=titanic)
hue='sex'添加性别变量,生还中女性占大多数。
g = sns.FacetGrid(titanic, col='sex') #利用网格技术
g.map(sns.countplot, 'alive') #不同性别生还情况
def agelevel(age):
if age <= 16:
return 'child'
elif age >= 60:
return 'aged' else:
return 'midlife'
titanic['age_level'] = titanic['age'].map(agelevel) #对年龄分级,分开老人和小孩的数据
titanic.head() #年龄等级
sns.countplot(x='age_level',data=titanic)
分级年龄可视化,成年人乘客数量占比很大,小孩和年长者占比很小。
sns.countplot(x='alive',hue='age_level',data=titanic)
乘客年龄与生还关系,乘客年龄与生还乘客之间的关系并不明显,小孩的生还几率比较大,老人却相对较小。
g = sns.FacetGrid(titanic, col='class', row='alone') #网格技术
g.map(sns.countplot, 'alive')
乘客舱位等级越高,生还的可能性越大,单独的乘客生还的几率也更大一些。
猜你喜欢
- 2024-10-23 新作《机甲战魔:Titanic Scion》公布 发售日期待定
- 2024-10-23 《泰坦尼克号 Titanic》 (1997)戳心台词
- 2024-10-23 ??Titanic at Aranya(aranya什么意思)
- 2024-10-23 Titanic轮船人员生存率预测(titanic船长)
- 2024-10-23 探索百年沉船《泰坦尼克号VR》开始STEAM抢鲜体验
- 2024-10-23 重回1912在《Titanic VR》中探索泰坦尼克号的秘密
- 2024-10-23 【泰坦尼克号】Titanic沉没108周年遗孀:想他的名字在生还名单上
- 2024-10-23 Titanic观感-来自YJ随写(titanic的观后感英文的)
- 2024-10-23 R语言描述统计第二弹 | 不同舱位乘客幸存人数的图像表达
- 2024-10-23 准备好泰坦尼克号冒险之旅了吗?「Titanic:A Space Between」即将发布
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)