Python之Pandas isnull检查是否有缺失值

这篇博客介绍了如何利用Python的Pandas库检查数据集中的缺失值。通过`df.isnull()`进行元素级别判断,`df.isnull().any()`进行列级别检查,`df[df.isnull().values==True]`定位缺失值位置,以及`isnull().sum()`统计缺失值数量。同时提到了计算缺失率的方法,并给出了相关资源链接。
1.df.isnull()

元素级别的判断,把对应的所有元素的位置都列出来,元素为空或者NA就显示True,否则就是False

train.isnull()

在这里插入图片描述

2,df.isnull().any()

列级别的判断,只要该列有为空或者NA的元素,就为True,否则False

train.isnull().any()

在这里插入图片描述

3.df[df.isnull().values==True]

可以只显示存在缺失值的行列,清楚的确定缺失值的位置。

train[train.isnull().values==True]

在这里插入图片描述
导出到excel里看 dataframe.to_excel()

4.isnull().sum()

将列中为空的个数统计出来

train.isnull().sum()

在这里插入图片描述
5.计算变量缺失率

df=pd.read_csv('titanic_train.csv')

def missing_cal(df):
    """
    df :数据集
return:每个变量的缺失率
"""
missing_series = df.isnull().sum()/df.shape[0]
missing_df = pd.DataFrame(missing_series).reset_index()
missing_df = missing_df.rename(columns={'index':'col',
                                        0:'missing_pct'})
missing_df = missing_df.sort_values('missing_pct',ascending=False).reset_index(drop=True)
return missing_df

missing_cal(df)如果需要计算样本的缺失率分布,只要加上参数axis=1.

缺失观测的行数data3.isnull().any(axis = 1).sum()

缺失观测的比例data3.isnull().any(axis = 1).sum()/data3.shape[0]

Reference

1.xiaoxiaosuwy https://blog.youkuaiyun.com/xiaoxiaosuwy/article/details/81187694

2.Python与数据挖掘 https://zhuanlan.zhihu.com/p/187315467

3.刘顺祥 https://zhuanlan.zhihu.com/p/93179647

### pandas isnull 函数的使用方法 `pandas.isnull` 是 Pandas 库提供的一种工具,专门用于检测数据集中是否存在缺失值(如 `NaN` 或 `None`)。此函数会返回一个与原始数据形状一致的布尔值矩阵,其中每个元素表示对应位置上的值是否缺失值。如果某个位置上的值是缺失值,则返回 `True`;否则返回 `False`[^1]。 以下是具体的应用场景和代码示例: #### 基本用法 对于单个 Series 对象或整个 DataFrame,可以直接调用 `isnull()` 方法来获取缺失值分布情况。 ```python import pandas as pd # 创建示例数据集 data = {'A': [1, 2, None], 'B': [4, None, 6]} df = pd.DataFrame(data) # 检测缺失值 missing_values = df.isnull() print(missing_values) ``` 运行以上代码后,输出如下: ``` A B 0 False False 1 False True 2 True False ``` 这表明第二行的第一列以及第三行的第二列为缺失值[^1]。 #### 统计缺失值数量 为了进一步分析哪些列含有较多的缺失值,可以通过 `.sum()` 方法计算每一列中缺失值的数量。 ```python missing_counts = df.isnull().sum() print(missing_counts) ``` 执行结果可能类似于下面的形式: ``` A 1 B 1 dtype: int64 ``` 这意味着在当前例子中,“A” 和 “B” 列各有 1 个缺失值[^2]。 #### 删除或替换缺失值 一旦确认了数据中存在的缺失部分,可以选择移除这些记录或者采用其他策略填补它们。例如,利用均值替代特定字段内的空白处。 ```python # 替换缺失值为平均数 df['A'].fillna(df['A'].mean(), inplace=True) # 查看更新后的状态 updated_missing = df.isnull().sum() print(updated_missing) ``` 通过上述操作流程可以看出,在实际项目里完成初步探索之后再决定采取何种措施应对不完整的资料是非常重要的一步[^3]。 #### 结合 NumPy 进行更复杂的逻辑判断 除了单纯依赖于 Pandas 自带的功能外,还可以引入 NumPy 来实现更加灵活的数据验证工作。比如检验数组内部所有成员是否均为有效数值而非空缺项。 ```python import numpy as np arr_test = np.array([789, float('nan'), 3]) if not np.isnan(arr_test).any(): print("Array does NOT contain any NaNs.") else: print("Array contains at least one NaN value!") ``` 这里展示了如何借助外部库扩展基础功能的同时也强调了跨平台协作的优势所在[^4]。 ### 总结 综上所述,掌握好 `pandas.isnull` 的运用技巧能够极大地提升我们在日常工作中处理脏乱数据的能力水平。无论是简单的查找还是深入挖掘潜在规律背后隐藏的信息点,这项技能都将发挥不可估量的作用价值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值