早上好,
我有以下数据框:
a = [1,2,3,4,5,6]
b = pd.DataFrame({'a': a})
我想创建一个列,用于汇总列“a”的下一行“n”行,包括a的当前值;我试过了:
n = 2
b["r"] = pd.rolling_sum(b.a, n) + a
print(b)
a r
0 1 NaN
1 2 5.0
2 3 8.0
3 4 11.0
4 5 14.0
5 6 17.0
拥有:
会很愉快 a r
0 1 1 + 2 + 3 = 6
1 2 2 + 3 + 4 = 9
2 3 3 + 4 + 5 = 12
3 4 4 + 5 + 6 = 15
4 5 5 + 6 + 0 = 11
5 6 6 + 0 + 0 = 6
答案 0 :(得分:1)
反转,然后将rolling_sum
与min_periods=1
一起使用,然后再反转。
b.a[::-1].rolling(3, min_periods=1).sum()[::-1]
0 6.0
1 9.0
2 12.0
3 15.0
4 11.0
5 6.0
Name: a, dtype: float64