# pandas.core.resample.Resampler.apply

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

  Aggregate using one or more operations over the specified axis.

  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.

  *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.

  See also

  `DataFrame.groupby.aggregate`, `DataFrame.resample.transform`, `DataFrame.aggregate`

  Notes

  agg is an alias for aggregate. Use the alias.

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

  Examples

      >>> s = pd.Series([1,2,3,4,5],
                        index=pd.date_range('20130101', periods=5,freq='s'))
      2013-01-01 00:00:00    1
      2013-01-01 00:00:01    2
      2013-01-01 00:00:02    3
      2013-01-01 00:00:03    4
      2013-01-01 00:00:04    5
      Freq: S, dtype: int64

      >>> r = s.resample('2s')
      DatetimeIndexResampler [freq=<2 * Seconds>, axis=0, closed=left,
                              label=left, convention=start, base=0]

      >>> r.agg(np.sum)
      2013-01-01 00:00:00    3
      2013-01-01 00:00:02    7
      2013-01-01 00:00:04    5
      Freq: 2S, dtype: int64

      >>> r.agg(['sum','mean','max'])
                           sum  mean  max
      2013-01-01 00:00:00    3   1.5    2
      2013-01-01 00:00:02    7   3.5    4
      2013-01-01 00:00:04    5   5.0    5

      >>> r.agg({'result' : lambda x: x.mean() / x.std(),
                 'total' : np.sum})
                           total    result
      2013-01-01 00:00:00      3  2.121320
      2013-01-01 00:00:02      7  4.949747
      2013-01-01 00:00:04      5       NaN

Scroll To Top