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

如何在循环中对多个Pandas DataFrame进行数值求和?

针对多DataFrame数值列求和的解决方案

要实现只对数值列求和、保留文本标签列的需求,可通过以下几种实用方式处理:

方法一:列表收集+逐列求和(适配循环场景)

先在循环中将生成的所有DataFrame存入列表,再对数值列累加,最后保留标签列:

import pandas as pd

# 生成示例数据(循环中替换为动态生成逻辑即可)
data1 = {'Header':['L1','L2','L3'], 'Val1':[float(100),float(200),float(300)],
         'Val2':[float(400),float(500),float(600)], 'Val3': [float(700),float(800),float(900)]}
data1_summary = pd.DataFrame(data=data1)

data2 = {'Header':['L1','L2','L3'], 'Val1':[float(1000),float(1100),float(1200)],
         'Val2':[float(1300),float(1400),float(1500)], 'Val3': [float(1600),float(1700),float(1800)]}
data2_summary = pd.DataFrame(data=data2)

data3 = {'Header':['L1','L2','L3'], 'Val1':[float(1900),float(2000),float(2100)],
         'Val2':[float(2200),float(2300),float(2400)], 'Val3': [float(2500),float(2600),float(2700)]}
data3_summary = pd.DataFrame(data=data3)

# 1. 将所有DataFrame存入列表(循环中直接append新生成的df即可)
dfs = [data1_summary, data2_summary, data3_summary]

# 2. 复制第一个DataFrame的结构,仅更新数值列总和
sum_df = dfs[0].copy()
# 对指定数值列进行累加
sum_df[['Val1', 'Val2', 'Val3']] = sum(df[['Val1', 'Val2', 'Val3']] for df in dfs)

print(sum_df)

输出结果:

Header    Val1    Val2    Val3
0     L1  3000.0  3900.0  4800.0
1     L2  3300.0  4200.0  5100.0
2     L3  3600.0  4500.0  5400.0

方法二:合并后分组求和(适配标签顺序不一致场景)

如果不同DataFrame的标签行顺序可能不同,可先合并所有DataFrame,再按Header分组求和:

# 合并所有DataFrame
combined_df = pd.concat(dfs)
# 按Header分组,对数值列求和并重置索引
sum_df = combined_df.groupby('Header').sum().reset_index()

print(sum_df)

该方法会自动对齐相同标签的行,即使不同DataFrame的行顺序不同也能正确计算总和。

方法三:循环调用add方法累加

初始化一个空的数值列结构,循环调用add方法逐步累加:

# 初始化总和DataFrame,复制第一个df的Header和数值列结构
sum_df = dfs[0].copy()
sum_df[['Val1', 'Val2', 'Val3']] = 0

# 循环累加每个df的数值列
for df in dfs:
    sum_df[['Val1', 'Val2', 'Val3']] = sum_df[['Val1', 'Val2', 'Val3']].add(df[['Val1', 'Val2', 'Val3']])

print(sum_df)

这种方式逻辑直观,适合需要跟踪逐步累加过程的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:35:25