- 机器学习:软件工程方法与实现
- 张春强 张和平 唐振
- 517字
- 2021-01-07 17:12:46
5.3.2 查看缺失情况
查看数据缺失的情况主要结合Pandas(统计)和Missingno(可视化)来介绍。
1.Pandas统计缺失情况
Pandas提供的接口可以轻松处理和统计缺失数据。例如,Pandas对象的所有描述性统计默认都不包括缺失数据。
对于元素级别的判断,将对应的所有元素的位置都列出来,元素为空或者NA就显示True,否则就显示False:
titanic_df.isnull()
对于列级别的判断,只要该列有为空或NA的元素,就为True,否则为False:
titanic_df.isnull().any()
统计空值个数:
titanic_df.isnull().sum()
2.Missingno缺失值可视化
Missingno提供了一个灵活且易于使用的缺失值数据可视化的Python库,可以快速直观地查看数据集完整性(或缺失性)的整体情况。直接使用pip install missingno安装即可。
missingno.matrix可以快速直观地以图案方式展示各个变量缺失值的分布情况。
import missingno as msno #为了展示效果,只选取部分字段,调整了图片和字段大小 msno.matrix( df=titanic_df[['sex', 'age', 'fare', 'embarked', 'deck', 'embark_town']], figsize=(8, 4), fontsize=16)
输出如图5-18所示。
图5-18 缺失值矩阵图
使用missingno.heatmap查看缺失变量之间的相关性,它将输入的Dataframe通过dataframe.isnull()生成新的缺失值的Dataframe,然后计算变量缺失值的相关性。热力图可以很直观快速地观察哪些变量经常一起缺失,方便数据核验。
msno.heatmap(df=titanic_df, figsize=(8, 4), fontsize=18)
输出如图5-19所示。
图5-19 缺失值相关性图
missingno.bar利用条形图可以更直观地看出每个变量缺失的比例和数量情况,接口展示的是每个变量非空值的数量和比例。图5-20直观地展示出deck变量的缺失率最高。
msno.bar( df=titanic_df[['sex', 'age', 'fare', 'embarked', 'deck', 'embark_town']], figsize=(8, 6),fontsize=18)
图5-20 缺失值条形图