Python Pandas fillna() 函数详解:参数、方法及实战代码

苏见山
苏见山
发布时间:2026-10-15| 3人浏览过
原创

本文详细介绍Pandas中fillna()函数处理缺失值的多种方法。涵盖inplace参数对原对象的影响、method参数(ffill/bfill)的前后填充逻辑,以及limit和axis参数的控制技巧。通过常数填充、字典映射及具体代码示例,帮助开发者高效完成数据清洗任务。

使用fillna()填充缺失值

df = pd.read_csv('ccf_offline_stage1_train.csv')
print(df['Distance'])
df['distance'] = df['Distance'].fillna(-1).astype(int)
print(df['distance'])

由于输出结果篇幅较长,此处省略展示。经过上述操作,dataframe中distance列的所有缺失值均已成功替换为-1。

关于fillna()函数详解

inplace参数的取值:True、False

  • True:直接修改原对象
  • False:创建一个副本,修改副本,原对象不变(缺省默认)

method参数的取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default None

  • pad/ffill:用前一个非缺失值去填充该缺失值
  • backfill/bfill:用下一个非缺失值填充该缺失值
  • None:指定一个值去替换缺失值(缺省默认这种方式)

limit参数:限制填充个数

axis参数:修改填充方向

#导包
import pandas as pd
import numpy as np
from numpy import nan as NaN
df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1

代码结果:

一、不指定任何参数

1. 用常数填充

#一、不指定method参数
 
#1.用常数填充
print (df1.fillna(100))
print ("-----------------------")
print (df1)

运行结果:

2. 用字典填充

#2.用字典填充
df1.fillna({0:10,1:20,2:30})

运行结果:

二、指定inplace参数

#二、指定inplace参数
 
print (df1.fillna(0,inplace=True))
print ("-------------------------")
print (df1)

运行结果:

三、指定method参数

1.method = 'ffill'/'pad':用前一个非缺失值去填充该缺失值

#三、指定method参数
 
df2 = pd.DataFrame(np.random.randint(0,10,(5,5)))
df2.iloc[1:4,3] = NaN
df2.iloc[2:4,4] = NaN
df2

运行结果:

#1.method = 'ffill'/'pad':用前一个非缺失值去填充该缺失值
 
df2.fillna(method='ffill')

运行结果:

2.method = 'bflii'/'backfill':用下一个非缺失值填充该缺失值

#2.method = 'bflii'/'backfill':用下一个非缺失值填充该缺失值
 
df2.fillna(method='bfill')

运行结果:

四、指定limit参数

#四、指定limit参数
 
#用下一个非缺失值填充该缺失值
#只填充2个
 
df2.fillna(method='bfill', limit=2)

运行结果:

五、指定axis参数

#五、指定axis参数
 
df2.fillna(method="ffill", limit=1, axis=1)

运行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

相关标签:

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

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