需要源码和数据集请点赞关注收藏后评论区留言私信~~~
下面利用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')
创作不易 觉得有帮助请点赞关注收藏~~~