Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!
在平时的数据分析当中,我们会经常遇到读入的数据存在空值的情况,面对庞大的数据量,我们不可能一个一个地去找空值,那么有没有比较方便的办法能够让我们快速找到DataFrame中的空值呢?答案是有的
下面我通过举例子来说明:
首先我们构建一个包含空值的DataFrame,代码如下:
import pandas as pd
import numpy as np
df = pd.DataFrame({
"身高":[170,171,167,189,np.nan],
"体重":[65,66,68,np.nan,np.nan],
"视力":[4.0,3.8,5.0,np.nan,np.nan]
})
让我们打印一下这个DataFrame,得到结果:
身高 体重 视力 0 170.0 65.0 4.0 1 171.0 66.0 3.8 2 167.0 68.0 5.0 3 189.0 NaN NaN 4 NaN NaN NaN
我们可以很明显地看到空值NaN的存在,下面我们通过几种方式来查看空值:
1.通过bool值结果来查看空值
df.isnull() # 或者 df.isna() #或者 np.isnan(df)
这两行代码的结果是一样的,我们基本可以说isnull()和isna()在使用中是等效的,得到的结果如下,其中False代表不是空值,True代表是空值:
身高 体重 视力 0 False False False 1 False False False 2 False False False 3 False True True 4 True True True
2.统计每一列空值的个数
df.isnull().sum() # 或者 df.isna().sum() # 或者 np.isnan(df).sum()
返回的结果是每一列空值的数量,结果如下,即身高列有1个空值,体重和视力列各有两个空值:
身高 1 体重 2 视力 2 dtype: int64
3.只统计一列的空值个数
如果你只想得到一列数据中的空值的数量,那么你可以通过以下的代码来实现:
df['身高'].isnull().sum() # 或者 df['身高'].isna().sum() # 或者 np.isnan(df['身高']).sum()
返回的结果如下,也就是说身高列有1个空值:
1
4.查看某列含有空值所在的整行
df[df['体重'].isnull()] # 或者 df[df['体重'].isna()] #或者 df[np.isnan(df['体重'])]
打印结果如下:
身高 体重 视力 3 189.0 NaN NaN 4 NaN NaN NaN
5.查看整个DataFrame中有空值的行
df[df.isnull().any(axis=1)] ##axis=1代表水平方向,axis=0代表竖向 # 或者 df[df.isna().any(axis=1)] #或者 df[np.isnan(df).any(axis=1)]
打印结果如下:
身高 体重 视力 3 189.0 NaN NaN 4 NaN NaN NaN
总结:在查看空值的时候有三种方法可以实现也就是isnull()、isna()以及np.isnan(),这三种方法可以说是等效的,大家可以结合不同的目的来选取自己喜欢的一种来使用就行!
今天的文章就分享到这里啦!



