泰坦尼克号 - 从灾难中学习机器学习/Titanic - Machine Learning from Disaster(kaggle竞赛)第五集( 数据预处理之数据清洗)

此次目的:
hello大家好,俺是没事爱瞎捣鼓又分享欲爆棚的叶同学!!!准备出几期博客来记录我学习kaggle数据科学入门竞赛的过程,顺便也将其中所学习到的知识分享出来。这是第一集(了解赛题),后面还会更新更详尽的代码和讲解等。(所学主要的内容来自与b站大学恩师“编程教学-Python“的教学视频内容)

上一节大家掌握好了嘛?没掌握全也没关系,慢慢来嘛!今天我们学习少一点,来解决一些基本的数据预处理之数据清洗问题,其中包括缺失值,异常值以及不一致的数据进行合理的处理。下面进入讲解。

一、数据初探

首先,我们对数据集进行了初步检查,使用 full.info() 方法查看了数据集的基本信息。通过该方法,我们可以清楚地看到数据集中的缺失值情况。

full.info()

二、处理 Cabin 缺失值

在泰坦尼克号数据集中,Cabin(船舱号)字段有大量缺失值。由于 Cabin 是一个类别型特征,且缺失值较多,因此我们决定用一个特殊的标识符 U(Unknown)来填充这些缺失值。

#对Cabin缺失值进行处理,利用U(Unknown)填充缺失值
full['Cabin'] = full['Cabin'].fillna('U')
full['Cabin'].head()

填充后,我们可以查看前几行数据,确保填充操作生效。

三、处理 Embarked 缺失值

接下来,我们处理 Embarked(登船港口)字段的缺失值。首先,使用以下代码查找缺失值的具体位置和情况:

#对Embarked缺失值进行处理,查看缺失值情况
display(full[full['Embarked'].isnull()])

通过观察数据,我们发现 Embarked 字段存在少量缺失值。为了解决这个问题,我们先查看 Embarked 字段的值分布情况:

display(full['Embarked'].value_counts())

分析结果表明,大多数乘客在英国南安普顿(S)登船。因此,我们选择用 S 填充 Embarked 字段中的缺失值。

#查看Embarked数据分布情况,可知在英国南安普顿登船可能性最大,因此以此填充缺失值。
full['Embarked'] = full['Embarked'].fillna('S')

四、处理 Fare 缺失值

在数据集中,我们还发现了 Fare(票价)字段的一个缺失值。首先,查看这个缺失值的乘客数据:

#查看缺失数据情况,该乘客乘坐3等舱,登船港口为法国,舱位未知
display(full[full['Fare'].isnull()])

分析后,我们了解到这名乘客乘坐的是 3 等舱,登船港口为英国南安普顿,且船舱未知。为了填充这个缺失值,我们计算了在相同条件下(3 等舱,南安普顿登船,船舱未知)的乘客的平均票价,并用该平均值填充缺失值。

#利用3等舱,登船港口为英国,舱位未知旅客的平均票价来填充数据缺失值
price = full[(full['Pclass'] == 3) & (full['Embarked'] == 'S') & (full['Cabin'] == 'U')]['Fare'].mean()
full['Fare'] = full['Fare'].fillna(price)

五、数据清洗后的检查

经过一系列处理后,我们再次使用 full.info() 查看数据集,确保所有缺失值都已妥善处理。

full.info()

六、总结与鼓励

数据清洗是数据分析过程中至关重要的一步,尤其是在面对缺失值时,合理的处理方法可以显著提高后续分析和建模的准确性。在这次清洗中,我们采用了填充法,通过分析数据分布情况,选择了合理的填充值,确保了数据的完整性和一致性。希望这些经验能为大家在数据清洗工作中提供帮助。加油加油!!!每天进步一点点就够啦!!!哪怕不是学习到知识,哪怕多了些感悟与体验,甚至有个好心情也是收获哦!!!

七、小彩蛋

当当当,今天和老妈学的新菜,新手哈,不过假期中做些这种小事,学点保命小技能,让生活更有趣了哈哈哈哈!!!粉丝学累了,粉丝先吃嘿嘿嘿!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值