Python数据清洗:缺失值检测、删除与填充方法详解

Leo
Leo
发布时间:2026-10-16| 8人浏览过
原创

本文详解Python中处理缺失值的完整流程。从导入数据、替换异常符号为NaN开始,利用isnull()统计缺失数量。重点讲解dropna()直接删除策略(含axis、how、thresh参数)与fillna()填充策略(均值/中位数/前后向填充),并引入sklearn的KNNImputer进行基于邻居的插补,提供完整代码示例。

1.定位缺失值

首先导入所需的数据集文件。

df=pd.read_csv("nba.csv")
df.head(10)

接着识别并处理数据集中的异常值,例如将代表缺失的字符“-”进行特殊标记。

将数据集中所有的异常值统一替换为NaN(Not a Number),以便后续统一处理。

# 将空值形式的缺失值转换成可识别的类型
data = data.replace('-', np.NaN)

2.统计缺失值数量

使用# isnull()函数,确认各列是否存在缺失值1。

null_all = df.isnull().sum()
print(null_all)

.sum();表示可以显示各个列的缺失值数量。

null_all = df.isnull.any(axis=1)#表示那些行具有缺失值,

.any()表示只要按行或列计算,有缺失值就算入。 .all()表示所在行或列全为缺失值才计入。 .sum()表示计算列缺失值时,一列有多个缺失值,同理,计算行缺失,计算有多少个行。

3.处理缺失值

3.1:df.dropna():直接删除行列

df表示数据集的名称

  • dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

括号内上述参数都是函数默认。

axis=0:表示对行进行删除操作,axis=1:对列删除进行操作。 how=‘any’:表示维度 存在“缺失值”就删除相应行/列操作;how=‘all’:进行相关行或列删除操作时,只有所有维度缺失才删除。 thresh=None:等于几表示有几个缺失值存在才会删除所在的行或列。 inplace=False:表示对原来的数据集不进行操作,True时表示对原来的数据集也进行操作。

3.2:df.fillna()填充缺失值

  • fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

axis : {0 or ‘index’, 1 or ‘columns’}

method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}。 pad’, ‘ffill:将前面的值填充于后面位置。 backfill’, 'bfill:表示将后面的值填充于前面位置。

data.fillna(data.mean())#平均值填充
data.fillna(data.median())#中位数填充

3.3:KNN填充

from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=4)#邻居样本求平均数
df1=imputer.fit_transform(df)

4.查看数据集的末尾

df.tail(10)

查看末尾10行

总结

到此这篇关于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 算法库。