Python——泰坦尼克号数据分析

该博客介绍了使用Python进行泰坦尼克号数据预处理,包括用平均值填充Age字段缺失值,用众数填充Embarked字段,并删除缺失值过多的字段。接着,通过distplot、countplot、boxenplot和violinplot等可视化工具分析数据分布特征,探讨乘客年龄与生存率的关系。
摘要由CSDN通过智能技术生成

目录

🧾1.数据集(部分数据)

 ✏️ 2、导入数据集与必要模块

⌨️ 3.数据预处理

1️⃣ isnull函数查看有无缺失值

2️⃣fillna函数填充缺失值

📍 Age字段使用平均值填充缺失值

📍 Embarked字段填充缺失值

3️⃣ 删除缺失值较多的字段

📊 4.数据可视化

1️⃣ distplot函数结合了直方图和核密度估计图来展示数据的分布特征

2️⃣  countplot函数绘制条形图,显示分类变量的观察计数

3️⃣ boxenplot函数绘制箱线图

4️⃣ violinplot函数绘制小提琴图

5️⃣  对年龄进行分级,分开小孩和老人的数据

 📍 对分级后的年龄进行可视化

 📍 分析乘客年龄与生还乘客之间的关系


🧾1.数据集(部分数据)

字段名称 含义说明
Survived 乘客是否获救,Key:0=没获救,1=已获救
Pclass 乘客船舱等级(1/2/3三个等级舱位)
Name 乘客姓名
Sex 性别
Age 年龄
SibSp 乘客在船上的兄弟姐妹/配偶数量
Parch 乘客在船上的父母/孩子数量
Ticket 船票号
Fare 船票价
Cabin 客舱号码
Embarked 登船的港口

 ✏️ 2、导入数据集与必要模块

# 1.导入必要的模块
import numpy as np
import pandas as pd 
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False   # 用来正常显示负号
%matplotlib inline

# 2.导入数据
titanic = pd.read_csv(r"C:/XXX/xxx/Documents/mycrawlers/数据分析与可视化/实验六——泰坦尼克号/titanic.csv")

# 3.查看前5行数据
titanic.head()

⌨️ 3.数据预处理

1️⃣ isnull函数查看有无缺失值

# 查看有无缺失值
titanic.isnull().sum()   

  这里结合了sum方法,对字段的缺失值的个数进行求和

 从上述结果可见,Cabin(客舱号码)、Embarked(登船的港口)、Fare(船票价)、Age(年龄)、Survived(乘客是否获救)字段中均有缺失值,而Cabin和Survived是需要考虑实际的情况,从而没有办法对缺失值进行填充,因此我们对Age字段按照平均值的方式对其进行填充,作为一个参考

2️⃣fillna函数填充缺失值

fillna(value,method,axis,inplace,limit,downcast)

字段 数据类型 含义
value dict or series or dataframe

用于填充缺失值的值。如果传递的是标量,那么整个对象中的所有缺失值都会被这个标量替换。如果传递的是字典,那么字典的键应该是列名,值则是用于替换该列缺失值的值。如果传递的是 Series 或 DataFrame,则它们的索引必须和原对象的索引对齐,以便进行按位置的替换

method

str

用于填充缺失值的方法。

'backfill' 或 'bfill':使用下一个有效值进行填充(向后填充)

'pad' 或 'ffill':使用前一个有效值进行填充(向前填充)

None:不进行任何填充,仅返回原始对象

axis

int or str

确定沿着哪个轴进行填充。0 或 'index' 表示按行(即沿着水平轴),1 或 'columns' 表示按列(即沿着垂直轴)

inplace

bool

默认为 False,如果为 True,则直接修改原始对象而不返回新的对象

limit

int

如果 method 不是 None,则此参数用于限制连续填充的最大数量。例如,如果 limit=1,则最多只填充一个缺失值

downcast

dict or str

将可能更大的数据类型向下转换为可能更小的数据类型,以节省内存。例如,如果某个列是 float64 类型,但所有值都是整数,那么可以将其转换为 int64 类型

📍 Age字段使用平均值填充缺失值
# 1.求age这一列的平均值
mean = titanic['Age'].mean()  

# 2.查看平均值
print(mean)

# 3.用均值进行缺失值的填充
titanic['Age'] = titanic['Age'].fillna(mean)

# 4.统计缺失值
titanic.isnull().sum()

从上图的结果可知,Age字段没有缺失值,因此缺失值填充成功,而Embarked字段也可以进行填充

📍 Embarked字段填充缺失值
  • 使用value_counts来统计登船地点(S,C,Q)的人数
# 1.统计登船地点(S,C,Q)的人数
titanic['Embarked'].value_counts()

# 2.得到的结果为
S    914
C    270
Q    123
Name: Embarked, dtype: int64
  • 对登船地点进行缺失值的填充(填充为S)
# 1.对登船地点进行缺失值的填充(填充为S)
titanic['Embarked'] = titanic['Embarked'].fillna("S")

# 2.统计Embarked字段的缺失值
titanic['Embarked'].isnull().sum()

# 3.得到的结果为
0

3️⃣ 删除缺失值较多的字段

# 1.删除缺失值较多的字段
del titanic['Cabin']

# 2.查看数据的前五行信息
titanic.head()

📊 4.数据可视化

1️⃣ distplot函数结合了直方图和核密度估计图来展示数据的分布特征

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherry晴

创作不易,多多包涵~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值