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

如何用Pandas填充Excel中仅首行有值的类别与子类别的缺失值?

Pandas填充Excel类别/子类别缺失值的高效方案

不用写for循环,Pandas内置的ffill()(向前填充)方法就是最优解——它专门处理这种"首行有值、后续行缺失"的场景,而且是矢量化操作,比逐行循环快几个数量级,尤其是数据量大的时候。

具体步骤与代码示例

  1. 读取目标Excel文件
  2. 对类别和子类别列应用ffill(),自动用前一行的有效值填充当前行的缺失值
  3. 可选:如果第一行存在缺失值,可搭配bfill()从后往前补一次
  4. 导出清理后的数据
import pandas as pd

# 读取Excel数据
df = pd.read_excel("your_input_file.xlsx")

# 填充类别和子类别列的缺失值
df["类别"] = df["类别"].ffill()
df["子类别"] = df["子类别"].ffill()

# (可选)处理第一行可能的缺失值(如果存在的话)
# df[["类别", "子类别"]] = df[["类别", "子类别"]].bfill()

# 保存清理后的文件
df.to_excel("cleaned_output_file.xlsx", index=False)

为什么比for循环好?

Pandas的ffill()是底层基于C实现的矢量化操作,不需要逐行遍历数据;而for循环是Python层面的逐行处理,数据量越大,速度差距越明显——比如处理10万行数据,ffill()可能只需要几毫秒,循环要好几秒甚至更久。

适用场景说明

这种方法完美适配你的场景:当新的类别/子类别出现时,首行的有效值会成为后续行的填充值,直到下一个新的有效值出现,完全符合Excel中这类分组数据的格式逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:05:33