如何用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
相关产品推荐
相关产品推荐

