关于#python#的问题:每三项累加求和

有一组数据[12, 13, 15, 16, 14, 11, 19, 24, 28, 25],我想要每三项/每五项求一次和,不足三项/五项的设为NaN,像下面这样,有没有什么办法快速得到sum_3、sum_5两列的值

    num  sum_3  sum_5
0     12    NaN    NaN
1     13    NaN    NaN
2     15     40    NaN
3     16     44    NaN
4     14     45     70
5     11     41     69
6     19     44     75
7     24     54     84
8     28     71     96
9     25     77    107

可以用前n项和Sn减,a[1]+a[2]+a[3]=S[3]-S[0]。
计算Sn利用S[n]=S[n-1]+a[n],一次循环

找到一个新的办法,可以使用rolling(),记录一下:

data = pd.DataFrame({"num": [12, 13, 15, 16, 14, 11, 19, 24, 28, 25]})
data['sum_3'] = data['num'].rolling(3).sum()
data['sum_5'] = data['num'].rolling(5).sum()
print(data)