此次目的:
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()
六、总结与鼓励
数据清洗是数据分析过程中至关重要的一步,尤其是在面对缺失值时,合理的处理方法可以显著提高后续分析和建模的准确性。在这次清洗中,我们采用了填充法,通过分析数据分布情况,选择了合理的填充值,确保了数据的完整性和一致性。希望这些经验能为大家在数据清洗工作中提供帮助。加油加油!!!每天进步一点点就够啦!!!哪怕不是学习到知识,哪怕多了些感悟与体验,甚至有个好心情也是收获哦!!!
七、小彩蛋
当当当,今天和老妈学的新菜,新手哈,不过假期中做些这种小事,学点保命小技能,让生活更有趣了哈哈哈哈!!!粉丝学累了,粉丝先吃嘿嘿嘿!