pandas.core.resample.Resampler.apply — pandas 2.2.3 documentation (original) (raw)

Resampler.apply(func=None, *args, **kwargs)[source]#

Aggregate using one or more operations over the specified axis.

Parameters:

funcfunction, 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:

*args

Positional arguments to pass to func.

**kwargs

Keyword arguments to pass to func.

Returns:

scalar, Series or DataFrame

The return can be:

See also

DataFrame.groupby.aggregate

Aggregate using callable, string, dict, or list of string/callables.

DataFrame.resample.transform

Transforms the Series on each group based on the given function.

DataFrame.aggregate

Aggregate using one or more operations over the specified axis.

Notes

The aggregation operations are always performed over an axis, either the index (default) or the column axis. This behavior is different fromnumpy 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 tonumpy.mean(arr_2d, axis=0).

agg is an alias for aggregate. Use the alias.

Functions that mutate the passed object can produce unexpected behavior or errors and are not supported. See Mutating with User Defined Function (UDF) methodsfor more details.

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')) 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.agg("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': "sum"}) result total 2013-01-01 00:00:00 2.121320 3 2013-01-01 00:00:02 4.949747 7 2013-01-01 00:00:04 NaN 5

r.agg(average="mean", total="sum") average total 2013-01-01 00:00:00 1.5 3 2013-01-01 00:00:02 3.5 7 2013-01-01 00:00:04 5.0 5