pandas.core.groupby.SeriesGroupBy.pct_change#

SeriesGroupBy.pct_change(periods=1, fill_method=<no_default>, limit=<no_default>, freq=None, axis=<no_default>)[source] #

Calculate pct_change of each value to previous entry in group.

Returns:
Series or DataFrame

Percentage changes within each group.

See also

Series.groupby

Apply a function groupby to a Series.

DataFrame.groupby

Apply a function groupby to each row or column of a DataFrame.

Examples

For SeriesGroupBy:

>>> lst = ['a', 'a', 'b', 'b']
>>> ser = pd.Series([1, 2, 3, 4], index=lst)
>>> ser
a 1
a 2
b 3
b 4
dtype: int64
>>> ser.groupby(level=0).pct_change()
a NaN
a 1.000000
b NaN
b 0.333333
dtype: float64

For DataFrameGroupBy:

>>> data = [[1, 2, 3], [1, 5, 6], [2, 5, 8], [2, 6, 9]]
>>> df = pd.DataFrame(data, columns=["a", "b", "c"],
...  index=["tuna", "salmon", "catfish", "goldfish"])
>>> df
 a b c
 tuna 1 2 3
 salmon 1 5 6
 catfish 2 5 8
goldfish 2 6 9
>>> df.groupby("a").pct_change()
 b c
 tuna NaN NaN
 salmon 1.5 1.000
 catfish NaN NaN
goldfish 0.2 0.125