SeriesGroupBy.rolling ](pandas.core.groupby.SeriesGroupBy.rolling.html)
    * [ pandas.core.groupby.SeriesGroupBy.sample ](pandas.core.groupby.SeriesGroupBy.sample.html)
    * [ pandas.core.groupby.SeriesGroupBy.sem ](pandas.core.groupby.SeriesGroupBy.sem.html)
    * [ pandas.core.groupby.SeriesGroupBy.shift ](pandas.core.groupby.SeriesGroupBy.shift.html)
    * [ pandas.core.groupby.SeriesGroupBy.size ](pandas.core.groupby.SeriesGroupBy.size.html)
    * [ pandas.core.groupby.SeriesGroupBy.skew ](pandas.core.groupby.SeriesGroupBy.skew.html)
    * [ pandas.core.groupby.SeriesGroupBy.std ](pandas.core.groupby.SeriesGroupBy.std.html)
    * [ pandas.core.groupby.SeriesGroupBy.sum ](pandas.core.groupby.SeriesGroupBy.sum.html)
    * [ pandas.core.groupby.SeriesGroupBy.var ](pandas.core.groupby.SeriesGroupBy.var.html)
    * [ pandas.core.groupby.SeriesGroupBy.tail ](pandas.core.groupby.SeriesGroupBy.tail.html)
    * [ pandas.core.groupby.SeriesGroupBy.take ](pandas.core.groupby.SeriesGroupBy.take.html)
    * [ pandas.core.groupby.SeriesGroupBy.value_counts ](pandas.core.groupby.SeriesGroupBy.value_counts.html)
    * [ pandas.core.groupby.DataFrameGroupBy.boxplot ](pandas.core.groupby.DataFrameGroupBy.boxplot.html)
    * [ pandas.core.groupby.DataFrameGroupBy.hist ](pandas.core.groupby.DataFrameGroupBy.hist.html)
    * [ pandas.core.groupby.SeriesGroupBy.hist ](pandas.core.groupby.SeriesGroupBy.hist.html)
    * [ pandas.core.groupby.DataFrameGroupBy.plot ](pandas.core.groupby.DataFrameGroupBy.plot.html)
    * [ pandas.core.groupby.SeriesGroupBy.plot ](pandas.core.groupby.SeriesGroupBy.plot.html)
  * [ Resampling ](../resampling.html)
  * [ Style ](../style.html)
  * [ Plotting ](../plotting.html)
  * [ Options and settings ](../options.html)
  * [ Extensions ](../extensions.html)
  * [ Testing ](../testing.html)
  * [ Missing values ](../missing_value.html)

  * [ __ ](../../index.html)
  * [ API reference ](../index.html)
  * [ GroupBy ](../groupby.html)
  * pandas.core.... 

#  pandas.core.groupby.DataFrameGroupBy.pct_change  #

DataFrameGroupBy.  pct_change  (  _ periods  =  1  _ , _ fill_method  =
_NoDefault.no_default  _ , _ limit  =  _NoDefault.no_default  _ , _ freq  =
None  _ , _ axis  =  _NoDefault.no_default  _ )  [ [source]
](https://github.com/pandas-
dev/pandas/blob/v2.2.2/pandas/core/groupby/groupby.py#L5345-L5459) #

    

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
    

[ __ previous  pandas.core.groupby.DataFrameGroupBy.ohlc
](pandas.core.groupby.DataFrameGroupBy.ohlc.html "previous page") [ next
pandas.core.groupby.DataFrameGroupBy.prod  __
](pandas.core.groupby.DataFrameGroupBy.prod.html "next page")

__ On this page

  * ` DataFrameGroupBy.pct_change()  `

[ __ Show Source
](../../_sources/reference/api/pandas.core.groupby.DataFrameGroupBy.pct_change.rst.txt)

© 2024, pandas via [ NumFOCUS, Inc. ](https://numf