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

如何将多脚本生成的DataFrame数据合并至Excel新工作表?

需求完全可以实现,以下是具体实现思路和代码示例

核心步骤

  • 读取目标Excel中所有工作表的DataFrame,合并成统一数据集
  • 按Deal(买卖类型)、Counterparty(交易对手)、Commodity(商品)分组,对Total列求和
  • 将聚合结果转换为你需要的分层展示格式
  • 将最终结果写入原Excel的新工作表Sheet3

代码实现(基于pandas)

首先确保安装必要依赖:

pip install pandas openpyxl

编写处理脚本:

import pandas as pd

# 替换为你的目标Excel文件路径
excel_path = "target_file.xlsx"

# 1. 读取Excel中所有工作表,返回{sheet名: DataFrame}的字典
sheet_dict = pd.read_excel(excel_path, sheet_name=None)

# 2. 合并所有结构一致的工作表数据
combined_df = pd.concat(sheet_dict.values(), ignore_index=True)

# 3. 按需求分组求和,转换为分层展示格式
aggregated_data = combined_df.groupby(['Deal', 'Counterparty', 'Commodity'])['Total'].sum().unstack(level=2)

# 4. 将结果写入原Excel的Sheet3,若已存在则覆盖原有内容
with pd.ExcelWriter(excel_path, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
    aggregated_data.to_excel(writer, sheet_name='Sheet3')

结果说明

运行后生成的Sheet3会完全匹配你的需求:

  • 第一级索引为Sell/Buy,第二级为交易对手
  • 列对应商品名称(如Oil),单元格值为该对手对应买卖类型的Total总和

额外建议

  • 可将这段逻辑整合到你每日生成Excel的脚本末尾,实现自动更新Sheet3
  • 若不同工作表列名存在差异,需先统一列名再执行合并操作
  • 如需按日期筛选数据(比如仅统计当日记录),可在合并后添加:combined_df = combined_df[combined_df['Date'] == '04/03/2024'](注意日期格式需与数据匹配)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:41:16