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

如何对DataFrame按交易ID与连续日号序列分组计算预测值的cumulative sum

解决方案

首先构造示例DataFrame:

import pandas as pd

data = {
    "transaction ID(交易ID)": [12,12,12,12,13,13,13,13],
    "day number(日号)": [1,2,1,2,1,2,3,4],
    "Predicted value(预测值)": [0.001,0.002,0.001,0.002,0.001,0.002,0.002,0.003]
}
df = pd.DataFrame(data)

接下来生成分组标识:

  • 按交易ID分组后,判断当前行的日号是否为1,若是则标记为新组起点
  • 对每个交易ID内的标记进行累加,得到唯一的分组ID
# 生成分组键:同一交易ID下,日号为1时触发新分组
df['group_id'] = df.groupby('transaction ID(交易ID)')['day number(日号)'].apply(
    lambda x: (x == 1).cumsum()
)

最后按交易ID和group_id分组,对预测值求和:

result = df.groupby(['transaction ID(交易ID)', 'group_id'])['Predicted value(预测值)'].sum().tolist()
print(result)  # 输出: [0.003, 0.003, 0.008]

说明

  • 核心逻辑是通过(x == 1).cumsum()在每个交易ID内部生成递增的分组标识,把从1开始的连续日号序列归为一组
  • 分组后直接求和就能得到每组的累计总和,完全匹配需求结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:10:20