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

如何快速将CSV格式日消耗报表转换为月度消耗报表

大体积日消耗CSV转月度消耗报表落地方案

核心处理逻辑很明确:将date字段统一规整为「年-月」统计维度,按Material-Code(物料编码)、Material(物料名称)、年月维度分组,对daily consumption(日消耗)字段求和,就能得到对应物料的月度消耗数据。针对不同数据规模和使用习惯,可以选下面三种实测跑大文件不卡的方案:

方案1:无代码方案(适合100万行以内、不想写代码的场景)

不要直接双击用原生Excel打开大体积CSV,很容易卡崩、丢行,用Excel自带的Power Query处理即可:

  • 打开Excel,顶部菜单栏选「数据」-「从文本/CSV」,选中你的日消耗报表文件,加载到Power Query编辑器
  • 选中date列,把列类型改成「日期」,再新增自定义列,用日期提取函数生成格式为YYYY-MM的「统计月份」字段
  • 点击「分组依据」,分组字段勾选Material-Code、Material、「统计月份」三个字段,聚合规则选择对daily consumption列求和,把聚合后的新列命名为monthly consumption
  • 处理完成后直接把结果导出为新的CSV文件即可,全程是流式加载计算,不会把全量数据堆在内存里,比在单元格里写公式快几十倍。

方案2:轻量脚本方案(适合百万行以上、追求处理速度的场景)

用Python的pandas库写几行简单脚本就能跑,普通家用电脑处理1000万行级别的CSV也就10秒左右,代码可以直接复用:

import pandas as pd

# 读取源文件,指定字段类型避免格式错误
df = pd.read_csv(
    "你的日消耗报表文件路径.csv",
    parse_dates=["date"],
    dtype={"Material-Code": str} # 物料编码存为字符串,避免长编码被转成科学计数法
)

# 生成年月统计维度
df["stat_month"] = df["date"].dt.strftime("%Y-%m")

# 分组计算月度消耗
monthly_result = df.groupby(
    ["Material-Code", "Material", "stat_month"],
    as_index=False
)["daily consumption"].sum().rename(columns={"daily consumption": "monthly consumption"})

# 导出结果,utf-8-sig编码保证Excel打开不乱码
monthly_result.to_csv("月度消耗报表.csv", index=False, encoding="utf-8-sig")

如果文件大到超过电脑内存,把pandas换成dask库,代码逻辑几乎不用改,就能实现分块读取计算,不会出现内存不足报错。

方案3:数据库方案(适合千万行以上、需要反复做同类统计的场景)

如果后续每个月都要做这类消耗统计,可以直接把CSV导入本地SQLite数据库,一条SQL就能出结果,后续更新源数据后重跑语句就行,数据量再大也稳定:

SELECT
    "Material-Code",
    Material,
    strftime('%Y-%m', date) AS stat_month,
    SUM("daily consumption") AS "monthly consumption"
FROM daily_consumption_table
GROUP BY "Material-Code", Material, strftime('%Y-%m', date);

把查询结果导出为CSV就得到最终的月度报表。

处理前务必备份原始CSV文件,避免操作失误损坏源数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:15:17