pandas.core.groupby.DataFrameGroupBy.rolling#
- DataFrameGroupBy.rolling(*args, **kwargs)[source]#
- Return a rolling grouper, providing rolling functionality per group. - Parameters:
- windowint, timedelta, str, offset, or BaseIndexer subclass
- Size of the moving window. - If an integer, the fixed number of observations used for each window. - If a timedelta, str, or offset, the time period of each window. Each window will be a variable sized based on the observations included in the time-period. This is only valid for datetimelike indexes. To learn more about the offsets & frequency strings, please see this link. - If a BaseIndexer subclass, the window boundaries based on the defined - get_window_boundsmethod. Additional rolling keyword arguments, namely- min_periods,- center,- closedand- stepwill be passed to- get_window_bounds.
- min_periodsint, default None
- Minimum number of observations in window required to have a value; otherwise, result is - np.nan.- For a window that is specified by an offset, - min_periodswill default to 1.- For a window that is specified by an integer, - min_periodswill default to the size of the window.
- centerbool, default False
- If False, set the window labels as the right edge of the window index. - If True, set the window labels as the center of the window index. 
- win_typestr, default None
- If - None, all points are evenly weighted.- If a string, it must be a valid scipy.signal window function. - Certain Scipy window types require additional parameters to be passed in the aggregation function. The additional parameters must match the keywords specified in the Scipy window type method signature. 
- onstr, optional
- For a DataFrame, a column label or Index level on which to calculate the rolling window, rather than the DataFrame’s index. - Provided integer column is ignored and excluded from result since an integer index is not used to calculate the rolling window. 
- axisint or str, default 0
- If - 0or- 'index', roll across the rows.- If - 1or- 'columns', roll across the columns.- For Series this parameter is unused and defaults to 0. 
- closedstr, default None
- If - 'right', the first point in the window is excluded from calculations.- If - 'left', the last point in the window is excluded from calculations.- If - 'both', no points in the window are excluded from calculations.- If - 'neither', the first and last points in the window are excluded from calculations.- Default - None(- 'right').
- methodstr {‘single’, ‘table’}, default ‘single’
- Execute the rolling operation per single column or row ( - 'single') or over the entire object (- 'table').- This argument is only implemented when specifying - engine='numba'in the method call.
 
- Returns:
- pandas.api.typing.RollingGroupby
- Return a new grouper with our rolling appended. 
 
 - See also - Series.rolling
- Calling object with Series data. 
- DataFrame.rolling
- Calling object with DataFrames. 
- Series.groupby
- Apply a function groupby to a Series. 
- DataFrame.groupby
- Apply a function 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