You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

替代fillna(method='pad', inplace=True)规避FutureWarning的方案

解决pandas中fillna(method='pad')的FutureWarning问题

你遇到的警告是因为pandas已弃用fillna的method参数以及pad()方法,官方明确推荐用ffill()(forward fill的缩写)替代——它和pad功能完全一致,都是用前一个有效值填充NaN值。

正确替代代码

把原来的df.fillna(method='pad', inplace=True)替换成:

df.ffill(inplace=True)

如果不想用inplace=True(官方更推荐返回新对象的方式,避免修改原数据的副作用),也可以写成:

df = df.ffill()

为什么bfill不符合预期?

bfill()是后向填充,用下一个有效值填充NaN,和你需要的“前一个有效值填充”逻辑完全相反,所以结果自然不对。

验证效果

运行修改后的完整代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({"Col1":["A", np.nan, 1, np.nan],
                   "Col2":["B", np.nan, "C", np.nan]})

df.ffill(inplace=True)
print(df)

输出结果和原fillna(method='pad')完全一致:

Col1 Col2
0    A    B
1    A    B
2    1    C
3    1    C

且不会再出现FutureWarning。

内容的提问来源于stack exchange,提问作者Gооd_Mаn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:47:03