def __init__( self, obj, by=None, level=None, sort=True, as_index=True, dropna=True ): """ Group a DataFrame or Series by a set of columns. Parameters ---------- by : optional Specifies the grouping columns. Can be any of the following: - A Python function called on each value of the object's index - A dict or Series that maps index labels to group names - A cudf.Index object - A str indicating a column name - An array of the same length as the object - A Grouper object - A list of the above level : int, level_name or list, optional For objects with a MultiIndex, `level` can be used to specify grouping by one or more levels of the MultiIndex. sort : True, optional If True (default), sort results by group9s). Note that unlike Pandas, this also sorts values within each group. as_index : bool, optional If as_index=True (default), the group names appear as the keys of the resulting DataFrame. If as_index=False, the groups are returned as ordinary columns of the resulting DataFrame, *if they are named columns*. dropna : bool, optional If True (default), do not include the "null" group. """ self.obj = obj self._as_index = as_index self._sort = sort self._dropna = dropna if isinstance(by, _Grouping): self.grouping = by else: self.grouping = _Grouping(obj, by, level) self._groupby = libgroupby.GroupBy(self.grouping.keys, dropna=dropna)
def _groupby(self): return libgroupby.GroupBy(self.grouping.keys, dropna=self._dropna)