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

Pandas:按Model分组基于Rank计算Runtime反向累计求和的实现方法

Pandas分组计算反向累计和解决方案

核心逻辑:你需要的按Model分组、按Rank升序的Runtime反向累计和,可以通过将分组内Runtime序列倒序后做普通累计和,再倒序回原顺序实现,完全匹配你描述的计算规则。

实现步骤

  1. 先确保每个Model分组内的Rank按升序排列(避免原数据顺序混乱导致结果错误)
  2. 对每个Model分组的Runtime列做倒序累计和再回正

完整代码

import pandas as pd

# 1. 排序:保证每个Model分组内Rank从1到100升序
df = df.sort_values(by=['Model', 'Rank'], ignore_index=True)

# 2. 分组计算反向累计和
# 若要直接覆盖原Runtime列,将下方reverse_cumsum_runtime改为Runtime即可
df['reverse_cumsum_runtime'] = df.groupby('Model')['Runtime'].transform(
    lambda x: x.iloc[::-1].cumsum().iloc[::-1]
)

结果验证

以你给出的Model=0.05的前5条Runtime数据为例:
原始Runtime值:[250.5, 253.875, 310.875, 251.375, 277.25]
计算得到的反向累计和结果:[1343.875, 1093.375, 839.5, 528.625, 277.25]
完全符合你要求的计算规则:

  • Rank=1对应所有值总和1343.875
  • Rank=2对应总和减Rank1值=1093.375
  • Rank=5对应仅Rank5的值277.25

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:15:07