【数据分析与可视化】利用Python对泰坦尼克号幸存者数据分析与可视化(附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

下面利用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

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2024年1月6日
下一篇 2024年1月6日

相关推荐