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

Pandas中高效实现索引n处值为0到n项累加和的方法

用Pandas高效计算累积和(替代嵌套循环)

嗨,刚接触Pandas的话,你这个需求其实刚好能用上Pandas内置的累积求和函数,完全不用写低效的嵌套循环,一行代码就能轻松搞定!

核心方法:cumsum()

Pandas的Series.cumsum()方法就是专门用来计算从序列开头到当前位置的累积和的,完美匹配你想要的“索引n对应的price值为原DataFrame中索引0到n的price值之和”的需求。而且这个方法是Pandas底层优化过的,比Python层面的嵌套循环效率高几个数量级,尤其是数据量大的时候优势特别明显。

具体代码示例

首先构造你给出的原DataFrame:

import pandas as pd

# 原DataFrame
df = pd.DataFrame({'price': [1, 2, 3, 2, 4, 2]})

然后直接调用cumsum()方法更新列(或者新建列保留原数据):

# 直接更新原price列
df['price'] = df['price'].cumsum()

# 如果想保留原数据,新建一个累积和列
# df['cumulative_price'] = df['price'].cumsum()

执行后得到的结果就是你期望的:

price
0      1
1      3
2      6
3      8
4     12
5     14

为什么不用嵌套循环?

嵌套循环是纯Python层面的遍历,每一步都要做Python级别的运算;而cumsum()是基于Pandas的向量化运算,底层用C实现,处理大规模数据时速度会快很多,代码也更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:24:14