# pandas.DataFrame.agg

`DataFrame.``agg`(func, axis=0, *args, **kwargs)

  Aggregate using one or more operations over the specified axis.

  New in version 0.20.0.

  Parameters:

  func : function, str, list or dict

  > Function to use for aggregating the data. If a function, must either work when passed a DataFrame or when passed to DataFrame.apply.

  > Accepted combinations are:

  > - function
  > - string function name
  > - list of functions and/or function names, e.g. `[np.sum, 'mean']`
  > - dict of axis labels -> functions, function names or list of such.

  axis : {0 or ‘index’, 1 or ‘columns’}, default 0

  > If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.

  *args

  > Positional arguments to pass to func.

  **kwargs

  > Keyword arguments to pass to func.

  Returns:

  scalar, Series or DataFrame

  > The return can be:

  > - scalar : when Series.agg is called with single function
  > - Series : when DataFrame.agg is called with a single function
  > - DataFrame : when DataFrame.agg is called with several functions

  > Return scalar, Series or DataFrame.

  The aggregation operations are always performed over an axis, either the

  index (default) or the column axis. This behavior is different from

  numpy aggregation functions (mean, median, prod, sum, std,

  var), where the default is to compute the aggregation of the flattened

  array, e.g., `numpy.mean(arr_2d)` as opposed to

  `numpy.mean(arr_2d, axis=0)`.

  agg is an alias for aggregate. Use the alias.

  See also

  `DataFrame.apply`
    Perform any type of operations.
  `DataFrame.transform`
    Perform transformation type operations.
  `core.groupby.GroupBy`
    Perform operations over groups.
  `core.resample.Resampler`
    Perform operations over resampled bins.
  `core.window.Rolling`
    Perform operations over rolling window.
  `core.window.Expanding`
    Perform operations over expanding window.
  `core.window.EWM`
    Perform operation over exponential weighted window.

  Notes

  agg is an alias for aggregate. Use the alias.

  A passed user-defined-function will be passed a Series for evaluation.

  Examples

      >>> df = pd.DataFrame([[1, 2, 3],
      ...                    [4, 5, 6],
      ...                    [7, 8, 9],
      ...                    [np.nan, np.nan, np.nan]],
      ...                   columns=['A', 'B', 'C'])

  Aggregate these functions over the rows.

      >>> df.agg(['sum', 'min'])
              A     B     C
      sum  12.0  15.0  18.0
      min   1.0   2.0   3.0

  Different aggregations per column.

      >>> df.agg({'A' : ['sum', 'min'], 'B' : ['min', 'max']})
              A    B
      max   NaN  8.0
      min   1.0  2.0
      sum  12.0  NaN

  Aggregate over the columns.

      >>> df.agg("mean", axis="columns")
      0    2.0
      1    5.0
      2    8.0
      3    NaN
      dtype: float64

Scroll To Top