pandas.core.groupby.SeriesGroupBy.rolling#
- SeriesGroupBy.rolling(*args, **kwargs)[源代码]#
返回一个滚动观察员,为每个组提供滚动功能。
- Parameters:
- windowint, timedelta, str, offset, or BaseIndexer subclass
移动窗口的大小.
如果为整数,则为每个窗口使用的固定观测次数.
如果为 timedelta、str 或 offset,则为每个窗口的时间段. 每个窗口的大小将根据时间段内包含的观测值而变化. 这仅对日期时间类索引有效. 要了解更多关于 offset 和频率字符串的信息,请查看 this link
如果为 BaseIndexer 子类,则窗口边界基于定义的
get_window_bounds方法. 其他滚动关键字参数,即min_periods、center、closed和step将传递给get_window_bounds.- min_periodsint,默认 None
窗口中必须存在的最小观测值数量;否则,结果为
np.nan。对于由 offset 指定的窗口,
min_periods默认为 1.对于由整数指定的窗口,
min_periods默认为窗口大小.- centerbool,默认 False
如果为 False,则将窗口标签设置为窗口右边缘.
如果为 True,则将窗口标签设置为窗口中心.
- win_typestr,默认 None
如果为
None,则所有点都均匀加权.如果为字符串,则必须是有效的 scipy.signal window function
某些 Scipy 窗口类型需要在聚合函数中传递其他参数. 其他参数必须与 Scipy 窗口类型方法签名中指定的关键字匹配.
- onbool, default False
对于 DataFrame,在其中计算滚动窗口的列标签或索引级别,而不是 DataFrame 的索引.
由于未将整数索引用于计算滚动窗口,因此提供的整数列将被忽略并从结果中排除.
- axisint 或 str,默认为 0
如果为
0或'index',则在行上滚动。如果为
1或'columns',则在列上滚动。对于 Series,此参数未使用,默认为 0。
- closedstr,默认 None
如果为
'right',则从计算中排除窗口中的第一个点.如果为
'left',则从计算中排除窗口中的最后一个点.如果为
'both',则窗口中的所有点都包含在计算中。如果为
'neither',则从计算中排除窗口中的第一个和最后一个点.默认为
None('right').- <strong>method</strong>str {‘single’, ‘table’},默认为 ‘single’
按单列或单行(
'single')执行滚动操作,或对整个对象('table')执行滚动操作。此参数仅在方法调用中指定
engine='numba'时实现。
- Returns:
- pandas.api.typing.RollingGroupby
返回一个带有滚动附加的新观察员。
参见
Series.rolling使用 Series 数据调用对象。
DataFrame.rolling使用 DataFrames 调用对象。
Series.groupby将函数 groupby 应用于 Series。
DataFrame.groupby应用一个函数分组。
Examples
>>> 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