使用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
相关产品推荐
相关产品推荐

