Pandas库学习之isnull函数

Pandas库学习之isnull函数

一、简介

isnull()是Pandas库中DataFrame和Series对象的一个函数,用于检测数据中的缺失值。它返回一个布尔类型的DataFrame或Series,其中True表示该位置的值是缺失的(NaNNone),False表示该位置的值不是缺失的。

二、语法和参数

DataFrame.isnull()

isnull()函数没有参数。它直接应用于DataFrame或Series对象。

三、实例

3.1 基本使用

代码:

import pandas as pd
import numpy as np

# 创建一个包含NaN和None的DataFrame
df = pd.DataFrame({
    'A': [1, np.nan, 3, None],
    'B': [4, 5, np.nan, 7],
    'C': [8, 9, 10, 11]
})

print("原始DataFrame:")
print(df)

print("\n使用isnull()后的结果:")
print(df.isnull())

输出:

原始DataFrame:
     A    B   C
0  1.0  4.0   8
1  NaN  5.0   9
2  3.0  NaN  10
3  NaN  7.0  11

使用isnull()后的结果:
       A      B      C
0  False  False  False
1   True  False  False
2  False   True  False
3   True  False  False
3.2 与sum()函数结合使用

代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3, None],
    'B': [4, 5, np.nan, 7],
    'C': [8, 9, 10, 11]
})

print("每列缺失值的数量:")
print(df.isnull().sum())

print("\n每行缺失值的数量:")
print(df.isnull().sum(axis=1))

输出:

每列缺失值的数量:
A    2
B    1
C    0
dtype: int64

每行缺失值的数量:
0    0
1    1
2    1
3    1
dtype: int64
3.3 与布尔索引结合使用

代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, np.nan, 3, None],
    'B': [4, 5, np.nan, 7],
    'C': [8, 9, 10, 11]
})

print("原始DataFrame:")
print(df)

print("\n含有缺失值的行:")
print(df[df.isnull().any(axis=1)])

print("\n所有值都不缺失的行:")
print(df[df.notnull().all(axis=1)])

输出:

原始DataFrame:
     A    B   C
0  1.0  4.0   8
1  NaN  5.0   9
2  3.0  NaN  10
3  NaN  7.0  11

含有缺失值的行:
     A    B   C
1  NaN  5.0   9
2  3.0  NaN  10
3  NaN  7.0  11

所有值都不缺失的行:
     A    B  C
0  1.0  4.0  8

四、注意事项

  1. isnull()函数可以检测NaN和None值,但不能检测空字符串或其他可能被视为"缺失"的值。

  2. 对于非数值类型的列(如字符串或日期时间),只有None值会被视为缺失,而NaN不会。

  3. isnull()的逻辑相反函数是notnull(),它返回True表示非缺失值,False表示缺失值。

  4. 在处理大型数据集时,isnull()可能会消耗较多内存,因为它会创建一个与原DataFrame大小相同的新DataFrame。

  5. isnull()isna()是完全相同的函数,可以互换使用。

  6. 在进行数据清洗和预处理时,isnull()是一个非常有用的工具,可以帮助识别和处理缺失数据。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值