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

如何让DataFrame中profit列的计算结果从第二行开始而非第一行?

解决方案
  • 核心思路:把原代码里的shift(-1)换成shift(1),让每一行的profit等于上一行的value + 当前行的value,这样计算结果会从第二行开始生成,最后一行的结果也能正确计算。

  • 修正后的基础代码:

xf['profit'] = xf.value.shift(1) + xf.value

此时第一行的profit会是NaN(因为没有上一行数据),如果需要把第一行填充为0,可使用:

xf['profit'] = (xf.value.shift(1) + xf.value).fillna(0)
  • 原理说明:
    • 原代码里的xf.value.shift(-1)是取下一行的value和当前行相加,导致第一行存的是第1+2行的结果,最后一行只能加0,和需求不符。
    • 换成shift(1)后,是取上一行的value和当前行相加,第二行自然存第1+2行的结果,最后一行则存倒数第二行+最后一行的结果,完全匹配你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:14:56