泰坦尼克号python数据分析统计服_python数据处理——泰坦尼克

承接上篇豆瓣数据分析

本次主要是进行以下内容:

1.泰坦尼克号的数据分析,主要分析哪些特征影响了乘客的获救和遇难,是年龄?是性别?

#泰坦尼克数据集导入

titanic_df = sns.load_dateset("titanic")

#查看前5行数据

titanic_df.head()

输出结果

74213995b430

泰坦尼克数据前5行

#查看列名

titanic_df.columns.values.tolist()

输出结果

74213995b430

泰坦尼克数据集列名

列名说明

survived:生存情况,((1)存活,(0)死亡)

pclass:客舱等级(1是1等舱,2是2等舱,3是3等舱)

name:乘客名字

sex:乘客性别

age:乘客年龄

sibsp:在船兄弟姐妹数/配偶数

parch:在船父母数/子女数

fare:票价

alone:是否单独一个人

embarked:登船港口

#查看数据集维度

titanic_df.shape

输出结果

74213995b430

泰坦尼克数据维度

#查看age与fare信息

titanic_df[["age","fare"]].describe()

输出结果

74213995b430

image.png

#对于年龄的缺失值,选择用所有人的年龄中位数来进行填充

age_median = titanic_df["age"].median()

titanic_df["age"] = titanic_df["age"].fillna(age_median)

titanic["age"]

按照现在的年龄,对年龄进行分组,分组bins为age_min-1,22,28,35,age_max+1,要求左开右闭,labels为'22 below','22-28','28-35','35 above'

age_min = titanic_df["age"].min()

age_max = titanic_df["age"].max()

bins_cut = [age_min-1,22,28,35,age_max+1]

labels_cut = ["22 below","22-28","28-35","35 above"]

age_cut = pd.cut(titanic_df["age"],bins = bins_cut,,labels = labels_cut)

titanic_df.insert(loc = 4 , columns="age_cut",value=age_cut)

titanic_df.head()

输出结果

74213995b430

image.png

#对于各个年龄层的获救情况进行分析

plt.figure(figesize=(20,10))

sns.barplot(x = "age_cut",y="survived",data = titanic_df)

plt.title("Survived of ages")

plt.show()

输出结果

74213995b430

不同年龄段的获救情况柱状图

结论

从柱状图来看,各个年龄段的获救情况差不多,并没有非常大的差别

#不同年龄中,男性女性的获救情况

plt.figure(figsize=(10,5))

sns.swarmplot(x = "sex",y="age",hue="survived",data = titanic_df ,color ="pink") #其中hue表示按照survived列中的不同值赋予不同的参数

plt.title = ("Gender survived")

plt.show()

输出结果

74213995b430

image.png

结论

由图可以看出,无论哪个年龄层,女性获救的概率远远高于男性,但是在较小的年龄层中,男女获救概率差不多,这也满足了泰坦尼克中妇女儿童优先别解救。

#查看游客在每个港口登录后。仓位等级的人数分布

plt.figure(figsize=(10,5))

sns.countplot(x = "embarked" , hue = "pclass",data=titanic_df,palette = "Blue_d")#palette表示的是可视化的图形色调

plt.title("embarked&pclass")

plt.show()

输出结果

74213995b430

image.png

结论

Q港口登船人数三等舱比例最大,S港次之,C港最少,可能Q港是穷人聚集地,S港富人比较多,穷人比较少,C港两极分化

# 船上不同等级舱的获救与遇难人员的人数分布情况

plt.figure(figsize=(10,5))

sns.countplot(x = "pclass",hue="survived",data = titanic_df,palette="Blues_d")

plt.title("pclass&survived")

plt.show()

输出结果

74213995b430

image.png

结论

一等舱获救的比例最大,二等舱获救占大约一半,三等舱的获救比例最低,可见,舱位高的人获救的可能性更大

#幸存和遇难乘客的票价分布

plt.figure(figsize = (10,5))

sns.violinplot(x = "survived",y = "fare",data="titanic_df",inner = "quartile")

plt.title("survived&fare")

plt.show()

输出结果

74213995b430

image.png

结论

票价相对较高的获救概率也越大

#每个仓位重,不同性别的获救情况

plt.figure(figsize=(10,5))

sns.factorplot(x = "pclass",y="survived",hue= "sex",data=titanic_df)

plt.title("pclass&survived")

plt.show()

输出结果

74213995b430

image.png

结论

不论是哪个舱位的人,女性获救的可能性更大,并且,一等舱中,男性获救的可能性也很大

#幸存者和遇难者子女数量分布

plt.figure(figsize(10,5))

sns.boxplot(x="survived",y="parch",data=titanic_df)

plt.title("survived&parch")

plt.show()

输出结果

74213995b430

image.png

结论

父母子女数量多的,可能更容易获救

#获救和遇难与(是否)单独乘船之间的关系

plt.figure(figsize=(10,5))

sns.barplot(x="survived",y="alone",data=titanic_df,palette="Blues_d")

plt.title("survived&alone")

plt.show()

输出结果

74213995b430

image.png

结论

单独乘船的死亡率明显比非单独乘船的高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值