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

如何用Python计算每行前3行数值的累加直至末尾?

实现滑动窗口3行求和的方案

以下是几种常见工具的实现方式,对应需求——从第3行开始,每行计算自身及前两行的Value之和,前两行留空:

Excel/Google Sheets 实现

在Output列的第3行(对应表格第3行)输入以下公式,下拉填充即可:

=IF(ROW()<3,"",SUM(INDEX(B:B,ROW()-2):INDEX(B:B,ROW())))

如果需要更简洁的写法,也可以用OFFSET函数:

=IF(ROW()<3,"",SUM(OFFSET(B3,-2,0,3,1)))

Python Pandas 实现

利用滑动窗口函数rolling快速计算:

import pandas as pd

# 构造或读取你的数据
df = pd.DataFrame({
    'Number': list(range(1, 12)),
    'Value': [4, 8, 1, 2, 3, 7, 2, 4, 7, 1, 3]
})

# 计算窗口为3的滑动和,不足3行的位置填充空字符串
df['Output'] = df['Value'].rolling(window=3, min_periods=3).sum().fillna('')

# 输出结果
print(df)

SQL 实现

通过窗口函数实现滑动求和,适配数据库场景:

SELECT 
    Number,
    Value,
    CASE 
        WHEN ROW_NUMBER() OVER(ORDER BY Number) >= 3 
        THEN SUM(Value) OVER(ORDER BY Number ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
        ELSE NULL
    END AS Output
FROM your_table_name
ORDER BY Number;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:05:25