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

Pandas如何将多个DataFrame的列求和结果汇总为单个DataFrame

Pandas多DataFrame指定列求和结果汇总方案

核心逻辑:循环处理时不要直接输出单表计算结果,先将每个对象的列求和结果存入列表,最终一次性转换为结构化DataFrame,支持追加来源标识(如DataFrame编号、Excel文件名)方便溯源。

基础示例修改

针对给出的两个测试DataFrame场景,修改后可直接输出汇总表:

import pandas as pd

# 测试数据构造
df1 = pd.DataFrame() 
df1["Col1"] = [0,2,4,6,2] 
df1["Col2"] = [5,1,3,4,0]
df1["Col3"] = [8,0,5,1,7]
df1["Col4"] = [1,4,6,0,8]

df2 = pd.DataFrame() 
df2["Col1"] = [8,2,4,6,2,3,5] 
df2["Col2"] = [3,7,3,4,0,6,8]
df2["Col3"] = [5,0,5,1,7,9,1]
df2["Col4"] = [0,4,6,0,8,6,0]

dataframes = [df1, df2]
sum_result_list = []

for df_id, df in enumerate(dataframes, start=1):
    # 计算指定列的和,同时记录来源表标识
    single_sum = df.iloc[:, 1:3].sum(axis=0)
    single_sum["source"] = f"df{df_id}"
    sum_result_list.append(single_sum)

# 拼接为最终汇总表
summary_df = pd.DataFrame(sum_result_list).set_index("source").reset_index()
print(summary_df)

运行后输出结果:

source  Col2  Col3
0    df1    13    21
1    df2    31    28

批量读取Excel场景实现

适配批量处理路径下所有xlsx文件的业务逻辑,代码如下(提前确认iloc的列索引范围符合业务要求,索引从0开始计数,切片为左闭右开规则):

import pandas as pd
import glob
import os

# 替换为你的Excel文件存放路径
file_path = "your/excel/folder/path"
xlsx_files = glob.glob(os.path.join(file_path, "*.xlsx"))

sum_result_list = []
for file in xlsx_files:
    df = pd.read_excel(file)
    file_name = os.path.basename(file)
    # 计算指定列范围的和,追加文件名标识
    single_sum = df.iloc[:, 13:28].sum(axis=0)
    single_sum["file_name"] = file_name
    sum_result_list.append(single_sum)

# 生成汇总表
excel_summary = pd.DataFrame(sum_result_list).set_index("file_name").reset_index()
# 可直接导出汇总结果到本地
excel_summary.to_excel("列求和汇总结果.xlsx", index=False)

补充说明

  • 若不同文件/表的指定列名存在差异,pandas会自动按列名对齐,缺失列会自动填充空值
  • 若不需要来源标识,直接将每次计算得到的Series存入列表,最终调用pd.DataFrame(sum_result_list)即可得到纯数值汇总表
  • 上述代码中用os.path.basename(file)取文件名,可兼容Windows、Mac、Linux全系统的路径规则,不需要手动区分路径分隔符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:15:39