承接上篇豆瓣数据分析
本次主要是进行以下内容:
1.泰坦尼克号的数据分析,主要分析哪些特征影响了乘客的获救和遇难,是年龄?是性别?
#泰坦尼克数据集导入
titanic_df = sns.load_dateset("titanic")
#查看前5行数据
titanic_df.head()
输出结果
泰坦尼克数据前5行
#查看列名
titanic_df.columns.values.tolist()
输出结果
泰坦尼克数据集列名
列名说明
survived:生存情况,((1)存活,(0)死亡)
pclass:客舱等级(1是1等舱,2是2等舱,3是3等舱)
name:乘客名字
sex:乘客性别
age:乘客年龄
sibsp:在船兄弟姐妹数/配偶数
parch:在船父母数/子女数
fare:票价
alone:是否单独一个人
embarked:登船港口
#查看数据集维度
titanic_df.shape
输出结果
泰坦尼克数据维度
#查看age与fare信息
titanic_df[["age","fare"]].describe()
输出结果
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()
输出结果
image.png
#对于各个年龄层的获救情况进行分析
plt.figure(figesize=(20,10))
sns.barplot(x = "age_cut",y="survived",data = titanic_df)
plt.title("Survived of ages")
plt.show()
输出结果
不同年龄段的获救情况柱状图
结论
从柱状图来看,各个年龄段的获救情况差不多,并没有非常大的差别
#不同年龄中,男性女性的获救情况
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()
输出结果
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()
输出结果
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()
输出结果
image.png
结论
一等舱获救的比例最大,二等舱获救占大约一半,三等舱的获救比例最低,可见,舱位高的人获救的可能性更大
#幸存和遇难乘客的票价分布
plt.figure(figsize = (10,5))
sns.violinplot(x = "survived",y = "fare",data="titanic_df",inner = "quartile")
plt.title("survived&fare")
plt.show()
输出结果
image.png
结论
票价相对较高的获救概率也越大
#每个仓位重,不同性别的获救情况
plt.figure(figsize=(10,5))
sns.factorplot(x = "pclass",y="survived",hue= "sex",data=titanic_df)
plt.title("pclass&survived")
plt.show()
输出结果
image.png
结论
不论是哪个舱位的人,女性获救的可能性更大,并且,一等舱中,男性获救的可能性也很大
#幸存者和遇难者子女数量分布
plt.figure(figsize(10,5))
sns.boxplot(x="survived",y="parch",data=titanic_df)
plt.title("survived&parch")
plt.show()
输出结果
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()
输出结果
image.png
结论
单独乘船的死亡率明显比非单独乘船的高