pandas.Series.rolling¶
-
Series.
rolling
(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0)[source]¶ 提供滚动窗口计算。
版本0.18.0中的新功能。
参数: 窗口:int或offset
移动窗口的大小。这是用于计算统计量的观察的数量。每个窗口将是固定大小。
如果其偏移,则这将是每个窗口的时间段。每个窗口将是基于包括在时间段中的观察值的可变大小。这仅适用于datetimelike索引。这是0.19.0的新功能
min_periods:int,default无
窗口中要求具有值的最小观察值(否则结果为NA)。对于由偏移量指定的窗口,这将默认为1。
freq:string或DateOffset对象,可选(默认为None)(DEPRECATED)
计算统计量之前符合数据的频率。指定为频率字符串或DateOffset对象。
center:boolean,default False
在窗口的中心设置标签。
win_type:string,默认值无
提供一个窗口类型。见下面的注释。
on:string,可选
对于DataFrame,在其上计算滚动窗口的列,而不是索引
版本0.19.0中的新功能。
axis:int或string,默认为0
返回: 针对特定操作的子类的窗口或滚动
笔记
默认情况下,结果设置为窗口的右边缘。可以通过设置
center=True
将其更改为窗口中心。freq关键字用于通过重新采样数据使时间序列数据符合指定频率。这是使用默认参数
resample()
(即使用平均值)。要了解有关偏移量和频次字符串的详情,请参阅此链接。
识别的win_types是:
boxcar
triang
blackman
hamming
bartlett
parzen
bohman
blackmanharris
nuttall
barthann
kaiser
(需要测试版)gaussian
(needs std)general_gaussian
(需要功率,宽度)slepian
(需要宽度)。
例子
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}) >>> df B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0
使用“triang”窗口类型,窗口长度为2的滚动和。
>>> df.rolling(2, win_type='triang').sum() B 0 NaN 1 1.0 2 2.5 3 NaN 4 NaN
滚动和窗口长度为2,min_periods默认为窗口长度。
>>> df.rolling(2).sum() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaN
同上,但明确设置min_periods
>>> df.rolling(2, min_periods=1).sum() B 0 0.0 1 1.0 2 3.0 3 2.0 4 4.0
一个参差不齐(意味着不规则的频率),时间索引的DataFrame
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}, ....: index = [pd.Timestamp('20130101 09:00:00'), ....: pd.Timestamp('20130101 09:00:02'), ....: pd.Timestamp('20130101 09:00:03'), ....: pd.Timestamp('20130101 09:00:05'), ....: pd.Timestamp('20130101 09:00:06')])
>>> df B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 2.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0
与整数滚动窗口对比,这将滚动对应于时间段的可变长度窗口。min_periods的默认值为1。
>>> df.rolling('2s').sum() B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 3.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0