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

使用Python Pandas处理错位Excel数据实现产品产量批量求和统计

实现方案

这个需求完全可以实现,以下是可直接复用的实现方法,适合处理大体积Excel文件,逻辑比手动定位行范围更简洁高效:

前置依赖安装

首先安装需要的第三方库:
pip install pandas openpyxl

完整可复用脚本

import pandas as pd

# 1. 读取Excel文件,仅读取需要的两列,大文件下更节省内存
# 替换下面的文件路径为你每月的Excel文件路径即可
df = pd.read_excel(
    "你的Excel文件路径.xlsx",
    usecols=["Product Number", "Produced Amount"],  # 对应你的两列列名,可按需修改
    dtype={"Product Number": str}  # 强制产品编号为字符串格式,避免自动转数字出错
)

# 2. 填充产品编号:将产品编号向下填充,直到下一个产品编号出现,给每行产量匹配对应产品
df["Product Number"] = df["Product Number"].ffill()

# 3. 清理产量列:把非数值的无效值(比如空值、样本中的'row')替换为空,再转数值格式
df["Produced Amount"] = pd.to_numeric(df["Produced Amount"], errors="coerce")

# 4. 按产品编号分组,对产量求和,跳过空值
result = df.groupby("Product Number", as_index=False)["Produced Amount"].sum()

# 5. 输出结果到Excel报表
result.to_excel("产量统计结果.xlsx", index=False)

# 如果需要直接在控制台看结果可以取消下面的注释
# print(result)

逻辑说明

  • 核心用到pandas的ffill()向前填充方法,自动把产品编号填充到下方所有空行,直到遇到下一个有效产品编号,自动划分每个产品对应的产量行范围,不需要手动计算每个产品的行位置,代码更简洁,大文件下运行效率更高
  • pd.to_numeric的errors="coerce"参数会自动把无法转成数字的内容(比如你样本里的'row'、空单元格)转成空值,求和时会自动跳过,不会影响结果准确性
  • 按照你提供的样本数据运行后,输出结果和你预期的完全一致:
    Product NumberProduced Amount
    A00 001188
    A00 0055
    A00 03461

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:24:09