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

如何将pandas列各唯一值对应数据写入同一Excel的不同工作表?

问题原因
  • 分组使用的列名与实际数据集列名不匹配。你提供的数据集内存储日期的列名为DATE INTERVAL,但代码中groupby使用的是DATE,如果没有提前对列名做重命名处理,分组操作会失效(严格运行会触发KeyError,如果你运行时没有报错,说明你之前的列名处理逻辑存在问题,把所有日期归到了同一个分组,最终仅生成一个工作表)。
  • Excel工作表名称存在非法字符。你当前的日期格式为日/月/年,包含字符/,而Excel工作表名称不允许使用/ \ ? * [ ]这类特殊字符,直接用原始日期作为工作表名会触发异常,部分场景下pandas会自动覆盖之前生成的工作表,最终只保留最后一个日期的内容。
修复方案

先对齐分组的列名,同时对工作表名称做非法字符替换即可,修复后代码如下:

with pd.ExcelWriter("combined_count.xlsx") as writer:
    # 替换为正确的日期列名做分组
    for date, data in combined_count.groupby('DATE INTERVAL'):
        # 把日期中的/替换为-,符合Excel工作表命名规则
        safe_sheet_name = str(date).replace('/', '-')
        # index=False表示不把pandas默认行索引写入Excel,不需要可以删除该参数
        data.to_excel(writer, sheet_name=safe_sheet_name, index=False)

如果你习惯用DATE作为列名,也可以先重命名列再执行后续操作:

# 先把日期列重命名为DATE
combined_count = combined_count.rename(columns={'DATE INTERVAL': 'DATE'})
with pd.ExcelWriter("combined_count.xlsx") as writer:
    for date, data in combined_count.groupby('DATE'):
        safe_sheet_name = str(date).replace('/', '-')
        data.to_excel(writer, sheet_name=safe_sheet_name, index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:57:03