Pandas数据集无缺失值但isnull()操作结果异常的问题排查
问题原因分析与解决办法
嘿,我一眼就看出问题出在哪啦!你其实是混淆了Pandas里两个方法的作用,导致误解了输出结果:
你现在用的
df.isnull().count(),它的作用是统计每一列的非缺失值行数,而不是缺失值的数量。因为你的数据集本来就没有缺失值,所以每列的非缺失值正好是总行数962,这个输出其实反而验证了你的数据确实没有缺失,而不是“整个数据集为空”。如果你想查看每一列的缺失值数量,应该改用这个命令:
print(df.isnull().sum())因为
isnull()会把缺失值标记为True,非缺失值标记为False,sum()会把True当作1、False当作0来求和,这样就能得到每列的缺失值总数——如果你的数据真的没有缺失,结果会全是0。
另外,还有一个更快捷的方式确认整个数据集是否存在缺失值:
print(df.isnull().any().any())
如果返回False,就说明你的数据里完全没有缺失值,和你最开始的判断一致。
内容的提问来源于stack exchange,提问作者el_pazzu




