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

Snowflake中每4行计算分段累计求和的实现方法

按每4行重置的累计求和实现方法

假设你用Python的pandas处理数据,下面是快速实现的方案:

首先构造示例数据:

import pandas as pd
import numpy as np

# 匹配你给出的示例数据
data = {'NMV': [1,2,3,4,5,6,7]}
df = pd.DataFrame(data)

生成每4行一组的分组键,再对每组做累计求和:

# 按行序号每4行划分为一组,组内计算累计求和
df['cumsum'] = df.groupby(np.arange(len(df)) // 4)['NMV'].cumsum()

运行后得到的结果:

NMV  cumsum
0    1       1
1    2       3
2    3       6
3    4      10
4    5       5
5    6      11
6    7      18

逻辑说明

  • np.arange(len(df))生成从0开始的连续行序号,// 4会把序号0-3归为组0、4-7归为组1,以此类推,精准实现每4行一个分组的规则。
  • 通过groupby按分组键分组后,对每组的NMV列调用cumsum(),就能在每组内完成累计求和,组与组之间自动重置计算。

如果你的数据索引不是从0开始的连续值,用np.arange(len(df))生成分组键更稳妥,确保严格按行的顺序每4行分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:30:47