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

Python中如何向量化实现DataFrame行的累加更新(替代循环)

向量化实现方案

你要的逻辑完全可以用pandas的cumsum()方法实现,这是纯向量化操作,效率远高于for循环。

步骤说明:

  1. 先创建一个临时DataFrame,以tableA为基础,把第一行替换成tableA第一行与tableB第一行的和
  2. 对这个临时DataFrame按行做累计求和(axis=0),就能得到你要的结果

代码实现:

import pandas as pd

# 构造示例数据
tableA = pd.DataFrame({'A': [10,0,0,7], 'B': [11,0,1,0], 'C': [12,0,2,1]}, index=[1,2,3,4])
tableB = pd.DataFrame({'A': [0,0,0,0], 'B': [0,0,0,0], 'C': [10,0,0,0]}, index=[1,2,3,4])

# 向量化实现
result = tableA.copy()
# 替换第一行为tableA第一行+tableB第一行
result.iloc[0] = tableA.iloc[0] + tableB.iloc[0]
# 按行累计求和
result = result.cumsum(axis=0)

print(result)

输出结果:

A   B   C
1  10  11  22
2  10  11  22
3  10  12  24
4  17  12  25

原理说明:

cumsum(axis=0)会对每一列从上到下做累计求和,正好对应你要的“上一行结果累加到当前行”的逻辑:

  • 第二行 = 第一行结果 + 当前行的tableA值
  • 第三行 = 第二行结果 + 当前行的tableA值
  • 以此类推

这种方法完全避开了循环,利用pandas的内置向量化运算,处理大数据量时性能提升非常明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:25:33