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

如何在Pandas中用前一行非NaN值填充列内后续NaN值直至下一个有效数据?

解决NaN值向前填充的问题

这需求太常见了!用Python的pandas库可以一步搞定你要的“用前一行有效数据填充后续NaN,直到遇到下一个非NaN值”的效果,也就是向前填充(Forward Fill)。

具体实现步骤

  1. 先构造你的目标数据集(模拟你给出的列数据):
import pandas as pd
import numpy as np

# 对应你提供的列数据
df = pd.DataFrame({
    'target_col': ['XXXXXXXX', np.nan, np.nan, np.nan, 'YYYYYYYY', np.nan, np.nan, np.nan]
})
  1. 调用pandas的ffill()方法(或者等价的fillna(method='ffill'))完成填充:
# 执行向前填充
df['target_col'] = df['target_col'].ffill()

最终结果

执行后你的数据列就会变成你期望的样子:

target_col
0  XXXXXXXX
1  XXXXXXXX
2  XXXXXXXX
3  XXXXXXXX
4  YYYYYYYY
5  YYYYYYYY
6  YYYYYYYY
7  YYYYYYYY

补充说明

  • 如果你的数据是单独的Series对象,同样可以直接调用series.ffill(),效果完全一致。
  • 如果你的数据开头就存在NaN值,ffill()会保留这些NaN(因为没有前序有效数据可以填充),要是需要处理这种情况,可以配合bfill()反向填充,但你的场景里开头是有效数据,所以不用额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:03:09