本文介绍了大 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个元素上滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 15:16