一个学习爬虫和数据处理分析的20岁秃顶码农
数据处理分析日常不可缺少的会使用pandas统计每一列空值的总数,但在统计的时候总是会遇见各种奇怪的情况,比如下列这种明明看上去是有空值的,但使用函数统计的结果就是有问题
统计每一列有多少缺失值
在pandas中,有一个isnull()函数,它是用于判断缺失值的,当我们将它和sum()函数结合在一起时,便可以统计出每一列的缺失值。
df = pd.read_csv("20231109.csv")
print(df.isnull().sum())
isnull()失效了?
当然,有时候我们使用isnull()时会出现第一张图那样的情况,明明数据看上去就是空的,但使用isnull()返回的却是0,难道出现bug了?这个时候请务必检查一下!一定要检查一下!生成df的原始数据里面是不是存在空字符串。
要知道空字符串看上去和缺失值是一样的,但他们是存在本质区别的。
如果要统计缺失值,同时也要统计空字符串该怎么办呢?这个时候就可以使用df.replace将空字符串转为nan。
import numpy as np
df.replace(to_replace="^\s*$",value=np.nan,regex=True,inplace=True)
// 或者
df.replace(to_replace="",value=np.nan,regex=True,inplace=True)
这两个都可以将空字符串转为nan,从而使得isnull()生效,这样就可以解决因为空字符串导致的isnull()失效的问题了