pandas.core.groupby.DataFrameGroupBy.rolling #
- DataFrameGroupBy。滚动( * args , ** kwargs ) [来源] #
返回滚动石斑鱼,为每组提供滚动功能。
- 参数:
- window int、timedelta、str、offset 或 BaseIndexer 子类
移动窗口的大小。
如果是整数,则表示每个窗口使用的固定观测值数量。
如果是 timedelta、str 或 offset,则为每个窗口的时间段。每个窗口的大小将根据该时间段内包含的观察结果而变化。这仅对 datetimelike 索引有效。要了解有关偏移和频率字符串的更多信息,请参阅此链接。
如果是 BaseIndexer 子类,则窗口边界基于定义的
get_window_bounds
方法。其他滚动关键字参数,即min_periods
、center
和closed
将step
传递给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