📅  最后修改于: 2023-12-03 15:34:20.712000             🧑  作者: Mango
在数据分析或数据处理过程中,我们经常需要处理缺失值。Pandas提供了.isnull()
方法来检查DataFrame或Series中是否存在缺失值。
在DataFrame中,你可以使用.isnull()
检查每个元素是否为缺失值。返回的结果是一个由布尔类型(True或False)组成的DataFrame,其中每个元素对应原始DataFrame中对应元素是否为缺失值。
import pandas as pd
data = {'name': ['David', 'Lucy', 'Doris', 'John', 'Peter', 'Yuri'],
'age': [25, 20, None, 18, None, 30],
'gender': ['M', 'F', None, 'M', 'M', None],
'city': ['Beijing', 'Shanghai', 'Guangzhou', None, 'Shenzhen', 'New York']}
df = pd.DataFrame(data)
print(df.isnull())
输出结果为:
name age gender city
0 False False False False
1 False False False False
2 False True True False
3 False False False True
4 False True False False
5 False False True False
上述代码中,一个包含了四列的DataFrame被创建出来。.isnull()
方法检查了每个元素是否为缺失值并返回一个相同大小的DataFrame。对于每个缺失值,.isnull()
返回的DataFrame中相应位置为True
,否则为False
。
Series上也有.isnull()
方法。这个方法和DataFrame的用法基本一致,只不过它返回的是一个由布尔类型(True或False)组成的Series,其中每个元素对应原始Series中对应元素是否为缺失值。
age = pd.Series([25, 20, None, 18, None, 30])
print(age.isnull())
输出结果为:
0 False
1 False
2 True
3 False
4 True
5 False
dtype: bool
上述代码中,一个包含了6个元素的Series被创建出来。.isnull()
方法检查了每个元素是否为缺失值并返回一个相同长度的Series。对于每个缺失值,.isnull()
返回的Series中相应位置为True
,否则为False
。
另外一个和.isnull()
相关的方法是.notnull()
。它的作用和.isnull()
相反,用于检查每个元素是否为非缺失值。在DataFrame或Series上使用.notnull()
会返回相同大小的DataFrame或Series,其中每个元素对应原始DataFrame或Series中对应元素是否为非缺失值。
print(df.notnull())
print(age.notnull())
输出结果分别为:
name age gender city
0 True True True True
1 True True True True
2 True False False True
3 True True True False
4 True False True True
5 True True False True
0 True
1 True
2 False
3 True
4 False
5 True
dtype: bool
注意到用.notnull()
方法得到的结果和.isnull()
的结果刚好相反。这两个方法经常一起使用以筛选非缺失值或缺失值。
.isnull()
方法用于检查DataFrame或Series是否存在缺失值;.notnull()
方法用于检查DataFrame或Series元素是否为非缺失值;.isnull()
和.notnull()
方法返回的均为和原始DataFrame或Series相同大小的结果,结果中每个元素对应原始DataFrame或Series中对应元素是否为缺失值或非缺失值。