maxframe.dataframe.Series.rolling#
- Series.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)#
提供滚动窗口计算。
- 参数:
window (int, or offset) -- 移动窗口的大小。这是用于计算统计量的观测值数量。每个窗口将是一个固定大小。如果它是一个偏移量,则这将是每个窗口的时间段。每个窗口将根据时间期内包含的观测值而具有可变大小。这仅对类似日期时间的索引有效。这是 0.19.0 中的新功能
min_periods (int, default None) -- 窗口中需要具有值的最小观测值数量(否则结果为 NA)。对于由偏移量指定的窗口,min_periods 将默认为 1。否则,min_periods 将默认为窗口的大小。
center (bool, default False) -- 将标签设置在窗口的中心。
win_type (str, default None) -- 提供窗口类型。如果为
None,则所有点的权重相等。有关更多信息,请参见下面的说明。on (str, optional) -- 对于 DataFrame,指定一个类似日期时间的列来计算滚动窗口,而不是使用 DataFrame 的索引。提供的整数列将被忽略并从结果中排除,因为整数索引不用于计算滚动窗口。
closed (str, default None) -- 使区间在“右”、“左”、“两者”或“都不”端点闭合。对于基于偏移量的窗口,默认为“右”。对于固定窗口,默认为“两者”。其余情况未针对固定窗口实现。
- 返回类型:
a Window or Rolling sub-classed for the particular operation
备注
默认情况下,结果设置在窗口的右边缘。可以通过设置
center=True将其更改为窗口的中心。要了解更多关于偏移量和频率字符串的信息,请参见 此链接。公认的 win_types 有:*
boxcar*triang*blackman*hamming*bartlett*parzen*bohman*blackmanharris*nuttall*barthann*kaiser``(需要 beta)* ``gaussian(需要 std)*general_gaussian``(需要 power、width)* ``slepian(需要 width)* ``exponential``(需要 tau),center 设置为 None。如果
win_type=None,则所有点的权重相等。要了解更多关于不同窗口类型的信息,请参见 scipy.signal 窗口函数。示例
>>> import numpy as np >>> import maxframe.dataframe as md >>> df = md.DataFrame({'B': [0, 1, 2, np.nan, 4]}) >>> df.execute() B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0
使用“triang”窗口类型,窗口长度为 2 的滚动求和。
>>> df.rolling(2, win_type='triang').sum().execute() B 0 NaN 1 0.5 2 1.5 3 NaN 4 NaN
窗口长度为 2 的滚动求和,min_periods 默认为窗口长度。
>>> df.rolling(2).sum().execute() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaN
与上述相同,但显式设置了 min_periods
>>> df.rolling(2, min_periods=1).sum().execute() B 0 0.0 1 1.0 2 3.0 3 2.0 4 4.0
一个不规则(即非固定频率)的时间索引 DataFrame
>>> df = md.DataFrame({'B': [0, 1, 2, np.nan, 4]}, >>> index = [md.Timestamp('20130101 09:00:00'), >>> md.Timestamp('20130101 09:00:02'), >>> md.Timestamp('20130101 09:00:03'), >>> md.Timestamp('20130101 09:00:05'), >>> md.Timestamp('20130101 09:00:06')]) >>> df.execute() 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().execute() 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