dataframe特征工程,如何利用df.info()统计缺失值Nan?
发布于 作者:苏南大叔 来源:程序如此灵动~

日常工作中,遇到的数据集不会像鸢尾花数据集那样完美,总会是出现一些空值。本文就是讲一下如何对数据集中的空值进行统计。以及在csv
数据转换为dataframe
的时候,对缺失值的处理。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码之间的故事。测试环境:python@3.6.8
,pandas@1.1.5
,scikit-learn@1.3.2
。
缺失值基本表述
在机器学习的dataframe
数据中,缺失值是指数据集中某个或某些属性的值是不完整的,缺失值表述为NaN
,空值表述为None
。这两个表述的边界可能也会发生转换,本文主要讨论的情况是缺失值:NaN
。
文本csv
数据friend.txt
【注意不要使用单引号】:
注意:该文件文本内部有三种缺失值的情况,分别是:NA,'',以及逗号后面什么都没有的情况。经过pd.read_csv()
的转换,上述内容全部变成了缺失值表述:NaN
。
输出:
而作为对比,另外一个没有经过read_csv()
转换的dataframe
,NaN
和空白字符串的表述,并不会被混淆。
输出:

df.info()操作
这个df.info()
操作,可以直接看到缺失值的统计数据。
注意:这里的空白字符串也被read_csv()
转化为缺失值NaN
,从而被统计出来了。
输出:
输出:

df.count()操作
这里还有个df.count()
操作,对比一下df.info()
的结果。
输出:
可见:这个df.count()
统计的就是df.info()
里面的non-null
的值。因此,df.count()
的结果是包含在df.info()
里面的。df.info()
的结果,是个dataframe
类型,而df.count()
的结果,是个series
类型。
df.describe()操作
这个就是对数据的均值的计算统计结果,参考文章:
输出:
输出:
这里表现的非常明显:空白字符串并没有当作数字,而NaN
是当成数字进行处理的。

data.DESCR属性
如果是sklearn.databases.xxx()
加载数据的话,还会有个类似的.desc
属性。是对该数据集的一些描述性的文字,参考文章:
结语
对数据进行缺失值判断,是对数据进行特征处理的重要步骤。更多相关文章,请参考:


