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

Python反向累积求和:将列底部值设为0的问题求助

解决反向累积求和时最后一行设为0的问题

你的代码已经实现了反向累积求和的核心逻辑,只需要小调整就能把最后一行的值设为0,这里给你几种简单可行的方案:

方案1:直接修改最后一行

先按原有逻辑生成反向累加列,再定位到最后一行将其设为0:

df2['cumsum_reverse'] = df2.loc[::-1, 'OS for the month'].cumsum()[::-1]
# 把目标列的最后一行设为0
df2.iloc[-1, df2.columns.get_loc('cumsum_reverse')] = 0

方案2:用shift调整累加结果

在反向累加后,通过shift()将结果整体下移一位,反转回来后最后一行会变成NaN,再用fillna(0)填充为0,一步到位:

df2['cumsum_reverse'] = df2.loc[::-1, 'OS for the month'].cumsum().shift()[::-1].fillna(0)

方案3:排除最后一行再累加

先对除最后一行外的数据做反向累加,再拼接一个值为0的行,确保最后一行直接是0:

import pandas as pd
# 处理前n-1行的反向累加
reverse_cumsum = df2['OS for the month'].iloc[:-1][::-1].cumsum()[::-1]
# 拼接最后一行的0,保持索引一致
df2['cumsum_reverse'] = pd.concat([reverse_cumsum, pd.Series([0], index=[df2.index[-1]])])

这几种方法都能达到你想要的效果,选哪种看你的代码习惯就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:40:58