# pandas.core.groupby.GroupBy.apply

`GroupBy.``apply`(func, *args, **kwargs)

  Apply function func group-wise and combine the results together.

  The function passed to apply must take a dataframe as its first argument and return a DataFrame, Series or scalar. apply will then take care of combining the results back together into a single dataframe or series. apply is therefore a highly flexible grouping method.

  While apply is a very flexible method, its downside is that using it can be quite a bit slower than using more specific methods like agg or transform. Pandas offers a wide range of method that will be much faster than using apply for their specific purposes, so try to use them before reaching for apply.

  Parameters:

  func : callable

  > A callable that takes a dataframe as its first argument, and returns a dataframe, a series or a scalar. In addition the callable may take positional and keyword arguments.

  args, kwargs : tuple and dict

  > Optional positional and keyword arguments to pass to func.

  Returns: | applied : Series or DataFrame

  See also

  `pipe`
    Apply function to the full GroupBy object instead of to each group.
  `aggregate`
    Apply aggregate function to the GroupBy object.
  `transform`
    Apply function column-by-column to the GroupBy object.
  `Series.apply`
    Apply a function to a Series.
  `DataFrame.apply`
    Apply a function to each row or column of a DataFrame.

Scroll To Top