pandas.core.groupby.SeriesGroupBy.ewm#
- SeriesGroupBy.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, times=None, method='single')[source]#
Return an ewm grouper, providing ewm functionality per group.
- Parameters:
- comfloat, optional
Specify decay in terms of center of mass. Alternative to
span
,halflife
, andalpha
.- spanfloat, optional
Specify decay in terms of span.
- halflifefloat, str, or Timedelta, optional
Specify decay in terms of half-life.
- alphafloat, optional
Specify smoothing factor directly.
- min_periodsint, default 0
Minimum number of observations in the window required to have a value; otherwise, result is
np.nan
.- adjustbool, default True
Divide by decaying adjustment factor to account for imbalance in relative weights.
- ignore_nabool, default False
Ignore missing values when calculating weights.
- timesstr or array-like of datetime64, optional
Times corresponding to the observations.
- method{‘single’, ‘table’}, default ‘single’
Execute the operation per group independently (
'single'
) or over the entire object before regrouping ('table'
). Only applicable tomean()
, and only when usingengine='numba'
.
- Returns:
- pandas.api.typing.ExponentialMovingWindowGroupby
An object that supports exponentially weighted moving transformations over each group.
See also
Series.ewm
EWM transformations for Series.
DataFrame.ewm
EWM transformations for DataFrames.
Series.groupby
Apply a function groupby to a Series.
DataFrame.groupby
Apply a function groupby.
Examples
>>> df = pd.DataFrame( ... { ... "Class": ["A", "A", "A", "B", "B", "B"], ... "Value": [10, 20, 30, 40, 50, 60], ... } ... ) >>> df Class Value 0 A 10 1 A 20 2 A 30 3 B 40 4 B 50 5 B 60
>>> df.groupby("Class").ewm(com=0.5).mean() Value Class A 0 10.000000 1 17.500000 2 26.153846 B 3 40.000000 4 47.500000 5 56.153846