获取熊猫系列中接下来5到10个值的总和

我想总结熊猫系列或每个元素的任何列表的下 5 个到下一个 10 个值的值。例如:

x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
output = [40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 74, 57, 39, 20, 0, 0 ,0 ,0 ,0]

40 是 6、7、8、9、10 的总和。我并不真正关心最后一个值,它们可以是 nans 或后缀为 0 的可用值的总和。

我知道滚动功能并尝试过:

pd.Series(x).shift(-10).rolling(10, min_periods =1 ).sum()-pd.Series(x).shift(-5).rolling(5, min_periods =1 ).sum()

但它给出了错误的值。如果可以根据变量给出答案(5 和 10 用 x,y 替换)会很有帮助,但我自己也可以弄清楚。请帮忙。

回答

咱们试试吧:

n,m = 5,10
(pd.Series(x).shift(-n, fill_value=0)
   .rolling(n).sum()
   .shift(n-m+1)
)

输出:

0     40.0
1     45.0
2     50.0
3     55.0
4     60.0
5     65.0
6     70.0
7     75.0
8     80.0
9     85.0
10    90.0
11    74.0
12    57.0
13    39.0
14    20.0
15     0.0
16     NaN
17     NaN
18     NaN
19     NaN
dtype: float64


以上是获取熊猫系列中接下来5到10个值的总和的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>