一,分析背景和目的
分析背景:在上一篇里做过泰坦尼克号项目的数据清洗,模型训练,预估,链接如下https://zhuanlan.zhihu.com/p/157763714
本篇着重于该项目的可视化
分析目的:什么样的人在泰坦尼克号事件中的存活率较高?
二,分析维度
三,导入数据
# Step1:导入数据处理包
四,理解数据
1)理解字段
2)查看信息
#查看数据类型的信息
full.info()
五,数据清洗
- 缺失值填充
#年龄
# 用平均值填充年龄这一列的缺失数据
full["Age"].fillna(full["Age"].mean())
#股票价格
# 用平均值填充股票价格这一列的缺失数据
full["Fare"].fillna(full["Fare"].mean())
#登船港口
# 用最常见类别取代Embarked这一列中缺失数据
# 查看Embarked这一列的最常见类别
full["Embarked"].head()
full["Embarked"].value_counts()
# 用最常见类别进行填充
full["Embarked"].fillna("S")
#船舱号
# 查看船舱号这一列的信息
full["Cabin"].head()
# 发现有大量未知信息,于是用未知信息填充
full["Cabin"].fillna("U")
六,数据可视化
1.泰坦尼克号存活数
train["Survived"].value_counts()
2.总体生还概率
# 总体生还几率
import matplotlib.pyplot as plt
plt.pie(n,labels=["死亡","生存"],labeldistance=0.6,autopct="%.2f%%",pctdistance=0.4)
plt.title("总体生还率")
3.不同性别的人的存活率
Sex=full.groupby("Sex").Survived.mean()
SexDF=pd.DataFrame(Sex)
SexDF
# 绘制直方图
SexDF.plot(kind="bar")
#添加文本
plt.xlabel("性别")
plt.ylabel("存活率")
#添加标题
plt.title("不同性别的人的存活率")
可以看出,女性的存活率高于男性
4.不同登陆港口的人的存活率
#获取数据并转换数据类型
Embarked=full.groupby("Embarked").Survived.mean()
Embarked_df=pd.DataFrame(Embarked)
# 绘制柱状图
Embarked_df.plot(kind="bar",color="g")
plt.xlabel("登陆港口")
plt.ylabel("存活率")
plt.title("不同登陆港口的人的存活率")
plt.show()
5.不同船舱的人的存活率
#获取数据并转换数据类型
可以看出,船舱1的存活率是最高的
6.不同头衔的人的存活率
'''
可以看出已婚妇女的存活率最高
7.不同客舱号的人的存活率
full
可以看出,客舱号D的存活率最高
8.不同家庭大小的人的存活率
#描述家庭大小
familyDf[ 'FamilySize' ] = full[ 'Parch' ] + full[ 'SibSp' ] + 1
full_df=pd.concat([full,familyDf],axis=1)
#获取并存放家庭大小及其存活率数据
familydf=full_df.groupby("FamilySize").Survived.mean()
Family_df=pd.DataFrame(familydf)
#绘制柱形图
Family_df.plot(kind="bar",color="g")
plt.xlabel("家庭大小")
plt.ylabel("存活率")
plt.title("不同家庭大小的人的存活率")
plt.show()
可以看出家庭成员规模为4的存活率最高
总结:
1.女性比男性存活率高
2.从法国 瑟堡市登录的人存活率比在其他两地登录的人存活率高
3.在船舱1的乘客存活率较高
4.已婚妇女的存活率最高
5.客舱号D的乘客存活率最高
6.家庭成员规模为4的存活率最高