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(),这三种方法可以说是等效的,大家可以结合不同的目的来选取自己喜欢的一种来使用就行!
今天的文章就分享到这里啦!