# pandas.DataFrame.groupby

`DataFrame.``groupby`(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False)

  Group series using mapper (dict or key function, apply given function to group, return result as series) or by a series of columns

  Parameters:

  by : mapping function / list of functions, dict, Series, or tuple /

  > list of column names. Called on each element of the object index to determine the groups. If a dict or Series is passed, the Series or dict VALUES will be used to determine the groups

  axis : int, default 0

  level : int, level name, or sequence of such, default None

  > If the axis is a MultiIndex (hierarchical), group by a particular level or levels

  as_index : boolean, default True

  > For aggregated output, return object with group labels as the index. Only relevant for DataFrame input. as_index=False is effectively “SQL-style” grouped output

  sort : boolean, default True

  > Sort group keys. Get better performance by turning this off. Note this does not influence the order of observations within each group. groupby preserves the order of rows within each group.

  group_keys : boolean, default True

  > When calling apply, add group keys to index to identify pieces

  squeeze : boolean, default False

  > reduce the dimensionality of the return type if possible, otherwise return a consistent type

  Returns: | GroupBy object

  Examples

  DataFrame results

      >>> data.groupby(func, axis=0).mean()
      >>> data.groupby(['col1', 'col2'])['col3'].mean()

  DataFrame with hierarchical index

      >>> data.groupby(['col1', 'col2']).mean()