pandas.core.groupby.SeriesGroupBy.rolling #

系列分组依据。滚动( * args , ** kwargs ) [来源] #

返回滚动石斑鱼,为每组提供滚动功能。

参数
window int、timedelta、str、offset 或 BaseIndexer 子类

移动窗口的大小。

如果是整数,则表示每个窗口使用的固定观测值数量。

如果是 timedelta、str 或 offset,则为每个窗口的时间段。每个窗口的大小将根据该时间段内包含的观察结果而变化。这仅对 datetimelike 索引有效。要了解有关偏移和频率字符串的更多信息,请参阅此链接

如果是 BaseIndexer 子类,则窗口边界基于定义的get_window_bounds方法。其他滚动关键字参数,即min_periodscenterclosedstep传递给get_window_bounds

min_periods int,默认无

窗口中需要有值的最小观测值数量;否则,结果为np.nan.

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

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

中心布尔值,默认 False

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

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

win_type str,默认无

如果None,则所有点均等加权。

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

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

str 上,可选

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

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

axis int 或 str,默认 0

如果0'index',则滚动各行。

如果1'columns',则滚动各列。

对于系列,此参数未使用,默认为 0。

闭合str,默认 None

如果'right',则窗口中的第一个点将从计算中排除。

如果'left',则窗口中的最后一个点将从计算中排除。

如果'both',则窗口中的任何点都不会被排除在计算之外。

如果'neither',则窗口中的第一个点和最后一个点将从计算中排除。

默认None'right')。

方法str {'single', 'table'}, 默认 'single'

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

engine='numba' 仅当在方法调用中指定时才会实现此参数。

返回
pandas.api.typing.RollingGroupby

返回一条新石斑鱼,并附加我们的滚动。

也可以看看

Series.rolling

使用系列数据调用对象。

DataFrame.rolling

使用 DataFrame 调用对象。

Series.groupby

将函数 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