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

如何在Pandas中同时使用ffill和bfill并原地修改DataFrame?

如何同时使用ffill和bfill填充NaN并实现原地修改?

Pandas中没有内置的fbfill方法,但可以通过以下几种方式实现同时双向填充NaN,并且支持原地修改:

方法1:连续调用两次fillna

先执行向前填充(ffill),再执行向后填充(bfill),两次操作都设置inplace=True即可完成原地修改:

final_df.fillna(method='ffill', inplace=True)
final_df.fillna(method='bfill', inplace=True)

填充顺序不影响最终结果,先bfill再ffill也能达到同样效果,不管数据首尾是否存在NaN都能被完全填充。

方法2:使用快捷方法ffill()和bfill()

ffill()和bfill()是fillna(method='ffill')、fillna(method='bfill')的快捷写法,同样支持inplace参数:

final_df.ffill(inplace=True)
final_df.bfill(inplace=True)

自定义便捷方法fbfill

如果觉得每次写两次操作麻烦,可以封装一个自定义函数实现类似fbfill的效果:

def fbfill(df, inplace=False):
    if inplace:
        df.ffill(inplace=True)
        df.bfill(inplace=True)
    else:
        return df.ffill().bfill()

# 调用示例(原地修改)
fbfill(final_df, inplace=True)

内容的提问来源于stack exchange,提问作者Beck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:58:29