pandas DataFrame.fillna() 方法详解与实战

远山来客
远山来客
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍pandas中DataFrame.fillna()函数的具体用法。涵盖value、method、axis、inplace及limit等核心参数的配置,通过标量、字典填充及ffill/bfill前后向填充的实例,演示如何处理数据中的NaN值,帮助开发者高效完成数据清洗任务。

在pandas库中,DataFrame.fillna()函数主要用于处理数据集中的缺失值。该函数提供了灵活的填充策略,用户既可以直接指定具体的数值进行替换,也可以采用基于邻近数据的填充方式。

官方文档

DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

解释

构建实例:

import numpy as np
import pandas as pd
df = pd.DataFrame([[np.nan,22,23,np.nan],[31,np.nan,12,34],[np.nan,np.nan,np.nan,23],
[15,17,66,np.nan]],columns=list('ABCD'))
df


    A        B        C        D
0    NaN        22.0    23.0    NaN
1    31.0    NaN        12.0    34.0
2    NaN        NaN        NaN        23.0
3    15.0    17.0    66.0    NaN

value:scalar,series,dict,dataframe

参数value用于指定填充的具体内容,其类型可以是标量(scalar)、Series、字典(dict)或DataFrame。

df.fillna(value=1)#缺失值填充为1
    A        B        C        D
0    1.0        22.0    23.0    1.0
1    31.0    1.0        12.0    34.0
2    1.0        1.0        1.0        23.0
3    15.0    17.0    66.0    1.0
------------------------------------------
df.fillna(value={'A':2,'B':3})# 传入一个字典,指定某列填充的具体值
    A        B        C        D
0    2.0        22.0    23.0    NaN
1    31.0    3.0        12.0    34.0
2    2.0        3.0        NaN        23.0
3    15.0    17.0    66.0    NaN

method:{backfill,bfill,pad,ffill,none},default none

参数method定义填充的策略,可选值包括backfill或bfill(向后填充,即使用前一个非空值填充当前空值)以及pad或ffill(向前填充,即使用后一个非空值填充当前空值)。若设为None,则必须提供value参数。

df.fillna(method='ffill')#向前填充,注意此处默认参数axis=0,所以空值是填充上一行的数据,而不是前一列。

    A        B        C        D
0    NaN        22.0    23.0    NaN
1    31.0    22.0    12.0    34.0
2    31.0    22.0    12.0    23.0
3    15.0    17.0    66.0    23.0

axis: 控制行列的参数,用法和其他方法完全相同

inplace: 是否将结果赋值给原变量,和其他方法里的用法相同

limit:int 或None 向前或后填充的最大数量,必须是大于0的整数 如果指定了method参数,则连续空值值填充前int个 如果未指定method参数,则只填充所在轴上的前int空值

    A        B        C        D#原数据
0    NaN        22.0    23.0    NaN
1    31.0    NaN        12.0    34.0
2    NaN        NaN        NaN        23.0
3    15.0    17.0    66.0    NaN

df.fillna(value=0,axis=1,limit=1)#在ABCD列上,每列只填充第一个空值
    A        B        C        D
0    0.0        22.0    23.0    0.0
1    31.0    0.0        12.0    34.0
2    NaN        NaN        0.0        23.0
3    15.0    17.0    66.0    NaN

到此这篇关于pandas学习之df.fillna的具体使用的文章就介绍到这了,更多相关pandas df.fillna内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表