mars.dataframe.DataFrame.rolling#
- DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)#
提供滚动窗口计算。
- Parameters
window (int, 或 offset) – 移动窗口的大小。这是用于计算统计量的观测值数量。每个窗口将具有固定的大小。如果是偏移量,那么这将是每个窗口的时间段。每个窗口的大小将基于包含在时间段中的观测值而变化。这仅对日期时间类索引有效。这是0.19.0中的新功能。
min_periods (int, default None) – 窗口中所需的最小观察值数,以获得一个值(否则结果为NA)。对于通过偏移量指定的窗口,min_periods 默认为1。否则,min_periods 默认为窗口的大小。
center (bool, default False) – 将标签设置在窗口的中心。
win_type (str, 默认为 None) – 提供一个窗口类型。如果
None,则所有点的权重相等。 有关更多信息,请参阅下面的注释。on (str, 可选) – 对于一个 DataFrame,计算滚动窗口的 datetime 类列,而不是 DataFrame 的索引。提供的整数列被忽略并从结果中排除,因为不使用整数索引来计算滚动窗口。
closed (str, 默认 None) – 使区间在“右”、“左”、“两者”或“都不”端点上闭合。 对于基于偏移的窗口,它默认为“右”。 对于固定窗口,默认为“两者”。 其余情况未为固定窗口实现。
- Return type
用于特定操作的窗口或滚动子类
备注
默认情况下,结果设置在窗口的右边缘。通过设置
center=True可以将其更改为窗口的中心。要了解更多关于偏移量和频率字符串的信息,请参见 this link。识别的 win_types 包括: *
boxcar*triang*blackman*hamming*bartlett*parzen*bohman*blackmanharris*nuttall*barthann*kaiser(需要 beta) *gaussian(需要 std) *general_gaussian(需要 power,width) *slepian(需要 width) *exponential(需要 tau),中心设置为 None。如果
win_type=None所有点的权重都是均匀的。要了解有关不同窗口类型的更多信息,请查看 scipy.signal window functions。示例
>>> import numpy as np >>> import mars.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