如何判断DataFrame中是否有缺失值None或者NaN(nan)?如何根据值来获得DataFrame的索引下标?

假设有如下数据:

x=["hello","world",None]
xx=pd.DataFrame(x)
xx

数据如下:
在这里插入图片描述

可以看到,第2行第1列没有数据,是空None。可是如果我们的数据有10万行,那我们就不知道有没有缺失值了。当有缺失值的时候,99%的后续处理都会不经意报错,让你丈二和尚摸不着头脑,不知道是哪里报错了,所以千万要尽早解决。
判断方法如下:

xx.isnull()
#或者
xx==None

结果如下:
在这里插入图片描述
可以看到isnull()会返回一个和原来xx形状(shape)一样的dataframe,里面的每一个值表示原来对应位置是否为None。但是,当数据10万多行的时候,我们仍然可能看不到是否有元素为True,这个时候,和numpy中一样,可以用any()

xx.isnull().any()

结果如下:
在这里插入图片描述
如果想知道是为None元素的下标那怎么办呢?可以使用numpy中的方法。
我们先将xx.isnull()保存下来,转化成数值型0或1。

b=xx.isnull()
b[b==True]=1
b

即:
在这里插入图片描述
然后

#转成numpy数组,否则argwhere会报错。
bb=np.array(b)
np.argwhere(bb==1)

最终得到的精确下标如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43391414/article/details/113004235