前面有说过一个累计计算的系列函数,参考:pandas cum系列函数
这个rolling函数是滚动计算
pandas.DataFrame.rolling
Provide rolling window calculations.
滚动窗口计算
DataFrame.rolling(self, window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
小栗子
这个函数,最主要的是这个window
参数,表示的是移动窗口的大小,我们看几个例子
原始数据涨这样
df = pd.DataFrame({'A':list(range(10))})
df.rolling(2).sum()
我们来看看这个结果,首先,我们传入的是2,也就是window=2
,表示移动窗口的大小是2,也就是窗口中每次计算2个元素
其他参数都是默认的,所以,这个移动窗口就从上开始一直往下移动,当窗口中不够2个元素时,就会返回NaN,就像下图这样:
这里,我们在rolling之后用了sum,就是计算移动窗口内的元素的和
移动平均值是一个很常见的指标,这里就可以来计算
这里其实就是每3个元素,求个和
注意下,上面有个地方说错了,这个窗口不是从上到下开始的,而是
By default, the result is set to the right edge of the window
但是,好像又不是这个意思,有点儿迷乱。。。
我们来看个对比,顺便引入一个参数center
我理解下来是这样的,默认右边缘的话,就是当前元素作为右边缘,我们看看下图的对比,center=True
其实是将设置为中间
我们看看这个结果,比如下标是9这里,9作为中间元素的话,它作为中间元素,是缺少左边一个数据的,所以返回来NaN
这里要注意下
关于这里哪个win_type
参数,我是不太理解的
我感觉窗口还是从上到下的,哈哈哈
这个函数,在时间序列上用的比较多应该,后面写个相关的实例看看
网友评论