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

使用fillna函数ffill方法替换DataFrame中NaN值失败求助

解决pandas fillna(ffill)不生效的问题
  • 确保修改后赋值回原列
    pandas的fillna默认返回修改后的副本,不会直接修改原DataFrame。如果只执行:

    df['目标列'].fillna(method='ffill')
    

    原数据不会有变化,必须把结果赋值回去:

    df['目标列'] = df['目标列'].fillna(method='ffill')
    

    或者使用inplace=True参数直接修改原数据:

    df['目标列'].fillna(method='ffill', inplace=True)
    
  • 检查索引是否干扰填充顺序
    如果你的DataFrame索引不是连续递增的,ffill会按照索引的顺序填充,而不是表格显示的行顺序。可以先重置索引再填充:

    df = df.reset_index(drop=True)
    df['目标列'] = df['目标列'].ffill()
    
  • 排查列开头的NaN值
    如果目标列的第一个值就是NaN,ffill没有上一个有效观测值可以填充,这类NaN会保留。可以结合bfill填充开头的空值,或者手动指定初始值:

    df['目标列'] = df['目标列'].ffill().bfill()
    
  • 尝试使用简写方法ffill()
    pandas提供了更简洁的ffill()方法,和fillna(method='ffill')功能一致,试试换用这个方法:

    df['目标列'] = df['目标列'].ffill()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:02:06