本文介绍了大 pandas 在尾随n个元素上滚动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用熊猫,最简单的方法是计算前n个元素的滚动总和,例如,计算过去三天的销售额:
Using pandas, what is the easiest way to calculate a rolling cumsum over the previous n elements, for instance to calculate trailing three days sales:
df = pandas.Series(numpy.random.randint(0,10,10), index=pandas.date_range('2020-01', periods=10))
df
2020-01-01 8
2020-01-02 4
2020-01-03 1
2020-01-04 0
2020-01-05 5
2020-01-06 8
2020-01-07 3
2020-01-08 8
2020-01-09 9
2020-01-10 0
Freq: D, dtype: int64
所需的输出:
2020-01-01 8
2020-01-02 12
2020-01-03 13
2020-01-04 5
2020-01-05 6
2020-01-06 13
2020-01-07 16
2020-01-08 19
2020-01-09 20
2020-01-10 17
Freq: D, dtype: int64
推荐答案
您需要roll.sum:
You need rolling.sum:
df.rolling(3, min_periods=1).sum()
Out:
2020-01-01 8.0
2020-01-02 12.0
2020-01-03 13.0
2020-01-04 5.0
2020-01-05 6.0
2020-01-06 13.0
2020-01-07 16.0
2020-01-08 19.0
2020-01-09 20.0
2020-01-10 17.0
dtype: float64
min_periods
确保也可以计算前两个元素.默认情况下,窗口大小为3时,前两个元素为NaN.
min_periods
ensures the first two elements are calculated, too. With a window size of 3, by default, the first two elements are NaN.
这篇关于大 pandas 在尾随n个元素上滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!