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

如何在pandas中用上一行的值填充缺失的列数据

解决方法

直接使用pandas自带的向前填充方法ffill()即可实现用上一行值补全缺失值的需求,完整可运行代码如下:

import pandas as pd

# 读取原始CSV文件,空值会默认解析为NaN格式
df = pd.read_csv("pivot-products.csv")

# 对product_id列做向前填充,用上一行的有效值补全空缺
# 如果需要同时填充name列,可将代码改为 df[['product_id','name']] = df[['product_id','name']].ffill()
df['product_id'] = df['product_id'].ffill().astype(int)

# 此时pivot方法可正常运行
df.pivot(index='product_id',columns='modifier')

补充说明

  • ffill()是fillna(method='ffill')的简写,两种写法效果完全一致,作用就是沿着行方向自动将缺失值替换为上一行的非缺失值,完全匹配需求
  • 代码中追加的astype(int)是为了将product_id的格式转回整数,避免因填充前的空值导致列格式变为浮点型,和手动填充后的数据集格式完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:30:04