使用Pandas将NaN值填充为其前一行对应值的实现方法
Pandas用前一行值填充NaN的实现方法
你需要的功能可以直接用Pandas内置的fillna方法实现,不用手动定位索引赋值,适配性更高。
核心代码
# 方法1:用fillna指定前向填充参数 df['Height'] = df['Height'].fillna(method='ffill') # 方法2:直接调用ffill()简写方法,效果完全一致 # df['Height'] = df['Height'].ffill()
参数说明
method='ffill'是前向填充的专用参数,会自动遍历整列,遇到NaN值时自动取最近的上一个非NaN值填充,就算后续出现连续多个NaN也能正常处理,不需要手动修改索引适配- 如果不需要返回新对象,直接修改原DataFrame,可以添加
inplace=True参数:df['Height'].fillna(method='ffill', inplace=True)
运行代码后你就能得到预期的输出,索引为4的Height字段会自动填充为上一行的3503.3519,其余数据保持不变。
内容的提问来源于stack exchange,提问作者Mr Fanta
相关产品推荐
相关产品推荐

