class_docstr: Grouped rolling window calculation.
  
  See Also
  --------
  cudf.core.window.Rolling
class_docstr_tok: ["Grouped","rolling","window","calculation",".","See","Also","--","--","--","--","cudf.core.window.Rolling"]
code: def __init__(self, groupby, window, min_periods=None, center=False):
      sort_order = groupby.grouping.keys.argsort()
  
      # TODO: there may be overlap between the columns
      # of `groupby.grouping.keys` and `groupby.obj`.
      # As an optimization, avoid gathering those twice.
      self._group_keys = groupby.grouping.keys.take(sort_order)
      obj = groupby.obj.drop(
          columns=groupby.grouping._named_columns
      ).take(sort_order)
  
      gb_size = groupby.size().sort_index()
      self._group_starts = (
          gb_size.cumsum().shift(1).fillna(0).repeat(gb_size)
      )
  
      super().__init__(
          obj, window, min_periods=min_periods, center=center
      )
  
imports: import itertools
  import numba
  import pandas
  from pandas.api.indexers import BaseIndexer
  import cudf
  from cudf import _lib
  from cudf.api.types import is_integer, is_number
  from cudf.core import column
  from cudf.core._compat import PANDAS_GE_150
  from cudf.core.buffer import acquire_spill_lock
  from cudf.core.column.column import as_column
  from cudf.core.mixins import Reducible
  from cudf.utils import cudautils
  from cudf.utils.utils import GetAttrGetItemMixin
label_desc: Use image node_id 1 to create a new RollingGroupby object from inherited base classes: Rolling with example: obj = RollingGroupby(groupby, window, min_periods, center)