pandas.core.groupby.SeriesGroupBy.rolling#

SeriesGroupBy.rolling(window, min_periods=None, center=False, win_type=None, on=None, closed=None, method='single')[源代码]#

返回一个滚动分组器,为每个组提供滚动功能。

参数:
窗口int, timedelta, str, offset, 或 BaseIndexer 子类

移动窗口的大小。

如果是整数,则为每个窗口使用的固定观测数。

如果是一个 timedelta、str 或 offset,每个窗口的时间周期。每个窗口的大小将根据时间周期内包含的观测值而变化。这仅对类日期时间索引有效。要了解更多关于偏移量和频率字符串的信息,请参见 此链接

如果是一个 BaseIndexer 子类,基于定义的 get_window_bounds 方法的窗口边界。额外的滚动关键字参数,即 min_periodscenterclosedstep 将被传递给 get_window_bounds

min_periodsint, 默认为 None

窗口中所需的最小观测数以获得一个值;否则,结果为 np.nan

对于由偏移量指定的窗口,min_periods 将默认为 1。

对于由整数指定的窗口,min_periods 将默认为窗口的大小。

中心布尔值, 默认为 False

如果为 False,将窗口标签设置为窗口索引的右边缘。

如果为真,将窗口标签设置为窗口索引的中心。

win_typestr, 默认为 None

如果 None ,所有点都是均匀加权的。

如果是字符串,它必须是有效的 scipy.signal 窗口函数

某些 Scipy 窗口类型需要在聚合函数中传递额外的参数。这些额外参数必须与 Scipy 窗口类型方法签名中指定的关键字匹配。

str, 可选

对于一个 DataFrame,一个列标签或索引级别,用于计算滚动窗口,而不是 DataFrame 的索引。

提供的整数列被忽略并从结果中排除,因为整数索引不用于计算滚动窗口。

关闭str, 默认为 None

如果 'right',窗口中的第一个点将不包括在计算中。

如果 'left',窗口中的最后一个点不包括在计算中。

如果 'both',窗口中的点不会从计算中排除。

如果 'neither',窗口中的第一个和最后一个点将不参与计算。

默认 None ('right')。

方法str {‘single’, ‘table’}, 默认 ‘single’

对每列或每行执行滚动操作 ('single') 或对整个对象执行 ('table')。

只有在方法调用中指定 engine='numba' 时,此参数才实现。

返回:
pandas.api.typing.RollingGroupby

返回一个带有我们滚动追加的新分组。

参见

Series.rolling

使用带有 Series 数据的调用对象。

DataFrame.rolling

使用 DataFrames 调用对象。

Series.groupby

对一个Series应用一个groupby函数。

DataFrame.groupby

应用一个函数 groupby。

例子

>>> df = pd.DataFrame(
...     {
...         "A": [1, 1, 2, 2],
...         "B": [1, 2, 3, 4],
...         "C": [0.362, 0.227, 1.267, -0.562],
...     }
... )
>>> df
      A  B      C
0     1  1  0.362
1     1  2  0.227
2     2  3  1.267
3     2  4 -0.562
>>> df.groupby("A").rolling(2).sum()
    B      C
A
1 0  NaN    NaN
  1  3.0  0.589
2 2  NaN    NaN
  3  7.0  0.705
>>> df.groupby("A").rolling(2, min_periods=1).sum()
    B      C
A
1 0  1.0  0.362
  1  3.0  0.589
2 2  3.0  1.267
  3  7.0  0.705
>>> df.groupby("A").rolling(2, on="B").sum()
    B      C
A
1 0  1    NaN
  1  2  0.589
2 2  3    NaN
  3  4  0.705