Pandas DataFrame 缺失值检测与填充实战指南

一只小鹿
一只小鹿
发布时间:2026-10-13| 3人浏览过
原创

本文详解如何在 Pandas DataFrame 中检测列是否存在空值,并通过 isnull() 与 any() 组合返回 Series 结果。介绍将检测结果转化为 DataFrame 以筛选非空列的方法,以及针对特定列如 nkill 提取含空值记录的技巧。最后演示使用 fillna() 进行原地填充,支持指定数值或统计量(如中位数),并强调 inplace=True 参数对原数据直接修改的作用。

首先需要检查 DataFrame 中每一列是否包含空值。

temp = data.isnull().any() #列中是否存在空值
print(type(temp))
print(temp)

执行上述操作后,返回的结果类型为 Series。对于不包含空值的列,其对应的布尔值为 False。

<class 'pandas.core.series.Series'>
eventid        False
iyear         False
imonth        False
iday         False
approxdate       True
extended       False
resolution       True
...
Length: 135, dtype: bool

当列数量较多时,可以将返回的 Series 转换为 DataFrame,从而更方便地筛选出不存在空值的列。

colnull=pd.DataFrame(data={'colname': temp.index,'isnulls':temp.values})
#print(colnull.head())
#不存在空值的列名
print(colnull.loc[colnull.isnulls==False,'colname'])

转换后的结果展示如下。

0       eventid
1        iyear
2        imonth
3         iday
...
Name: colname, dtype: object

若需提取某一特定列(例如 nkill)中存在空值的记录,可通过条件筛选返回一个包含这些记录的 DataFrame。

data[data.nkill.isnull()]

接下来进行缺失值填充操作。设置 inplace 参数为 True 表示直接在原始的 DataFrame 上进行修改,而不生成新的副本。

data['doubtterr'].fillna(0, inplace=True)
data['propvalue'].fillna(data['propvalue'].median(),inplace=True)
 

以上内容即为关于 Pandas DataFrame 缺失值查找与填充的完整示例讲解,希望能为读者提供有效的参考。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。