需要源码和数据集请点赞关注收藏后评论区留言私信~~~
下面利用Seaborn库中自带的泰坦尼克号幸存者数据titanic进行数据分析与可视化实战
1:导入模块
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_context("paper",font_scale = 2.0)
# plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
# plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
%matplotlib inline
2:获取数据
打印前五行
titanic=sns.load_dataset('titanic')
titanic.head()
3:数据可视化
首先查看有无缺失值
titanic.isnull().sum()
可视化年龄的直方图如下
df = titanic
# 删除含有缺失年龄的观察
df.dropna(subset=['age'], inplace=True)
# 绘图:乘客年龄的频数直方图,绘图数据,指定直方图的条形数为20个
plt.hist(df["age"],bins = 20,label = '直方图' )
# 显示图例
plt.legend()
然后用年龄的均值进行缺失值填充
mean =titanic['age'] .mean()
print(mean)
#用均值进行缺失值的填充
titanic['age'] = titanic['age'].fillna(mean)
titanic.isnull().sum()
进行年龄分布的可视化
sns.distplot(titanic["age"])
显示登船地点(S,C,Q)的人数
titanic['embarked'].value_counts()
对登船地点进行缺失值的填充 填充为S 因为人数最多
titanic['embarked'] = titanic['embarked'].fillna("S")
titanic['embarked'].isnull().sum()
对于deck字段,由于缺失值太多,将其删除
del titanic['deck']
titanic.head()
4:数据探索
可视化乘客的性别分布
sns.countplot(x="sex",data=titanic)
基于性别 绘制乘客年龄分布箱线图
sns.boxplot(x="sex", y="age",data=titanic)
对船舱等级进行计数
sns.countplot(x="class",data=titanic)
结合船舱等级 绘制乘客年龄分布的小提琴图
对年龄进行分级 分开小孩和老人的数据
def agelevel(age):
if age<=16:
return 'child'
elif age>=60:
return 'old'
else:
return 'middle'
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)
plt.legend(loc = "best",fontsize='15')
创作不易 觉得有帮助请点赞关注收藏~~~
版权声明:本文为博主作者:showswoller原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/jiebaoshayebuhui/article/details/128692072