Python按多列分组基于基准列计算运行累积和的优化问题
实现方案
核心逻辑:你原计算逻辑中每一行的r_pwr - d_pwr + l_wr - e_pwr刚好和final列取值相等,且diff在同一个diff+id分组内是固定值,因此可以直接对final按分组做累积和后加diff即可,大幅简化代码。
注意点
- 你原有代码中的
ex_pwr属于笔误,实际列名应为e_pwr - 你需求中提到需要按两个列分组,因此分组键建议使用
['diff', 'id'],避免后续出现同id不同diff的场景下计算错误
简化后代码
df['cumul'] = df['diff'] + df.groupby(['diff', 'id'])['final'].cumsum()
运行后得到的cumul列和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

