Python数据处理:缺失值检测与填充删除实战

程一诺
程一诺
发布时间:2026-10-15| 4人浏览过
原创

本文详解Python中处理缺失值的两种核心策略:删除与填充。通过演示isnull/isna检测空值,使用dropna按行或阈值删除含NaN数据,以及利用fillna结合均值进行数据补全,帮助开发者掌握Pandas中缺失值处理的关键函数与参数设置。

前言:

缺失值的成因与数据构建

在前面的内容中,我们已经介绍了Python中重复值的处理方法。今天,我们将重点讨论缺失值的处理机制。缺失值的产生通常分为两类原因:机械性原因和人为原因。机械性原因主要指硬件故障、存储器损坏等导致设备无法在特定时间段内正常收集数据。而人为原因则更为复杂,可能包括数据录入疏忽、故意隐瞒信息等多种情况。

为了直观展示缺失值,我们先构建一个包含NaN(Not a Number)值的DataFrame对象,具体示例如下:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
print(data)

从上述输出中可以观察到,np.nan即代表NAN值,也就是我们常说的空值。

使用isnull与isna检测空值

在NumPy库中,提供了两个用于检测空值的函数:isnull()和isna()。

接下来,我们分别测试这两个函数的实际运行效果:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.isnull()
data.isna()

通过测试结果可以看出,这两个函数的功能一致,主要用于判断数据是否为空值。如果数据为空,函数返回True;反之,则返回False。

使用dropna删除缺失数据

通常情况下,处理空值主要有两种策略:直接删除或进行填充。首先介绍删除法,我们可以使用dropna()函数来移除包含空值的数据。需要注意的是,默认情况下,该函数会删除包含任何空值的整行数据。具体操作示例如下:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.dropna()

执行上述dropna()函数后,可以看到原始数据中只要存在空值的行均被移除,导致数据量大幅减少。

如果希望保留那些空值数量较少的行,仅删除空值超过特定阈值的行,可以通过设置dropna()函数的thresh参数来实现。例如,设置当每行空值数量大于2时才执行删除操作,而空值少于或等于2行的数据则予以保留。

使用fillna填充缺失值

另一种常见的处理方式是填充空值,常用的填充策略包括使用均值、中位数或众数等统计量。在Pandas中,我们可以利用fillna()函数来实现这一功能。例如,使用各列的均值来填充上文示例data中的空值,具体代码如下:

代码实现如下:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.fillna(data.mean())

运行上述代码后,输出结果显示所有空值均已成功被对应列的均值所填充。

至此,关于Python缺失值处理方法的介绍已完成。如需了解更多Python缺失值相关技巧,建议查阅本站往期文章或继续浏览后续相关内容,感谢大家的支持!

相关标签:

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

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 算法库。