Skip to main content
`Ctrl`+`K`

# pandas.api.typing.DataFrameGroupBy.diff

DataFrameGroupBy.diff(periods=1)

  First discrete difference of element.

  Calculates the difference of each element compared with another element in the group (default is element in previous row).

  Parameters:
    periods int, default 1

      Periods to shift for calculating difference, accepts negative values.

  Returns:
    Series or DataFrame

      First differences.

  See also

  `Series.diff`

    Apply function diff to a Series.

  `DataFrame.diff`

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

  Examples

  For SeriesGroupBy:

      >>> lst = ["a", "a", "a", "b", "b", "b"]
      >>> ser = pd.Series([7, 2, 8, 4, 3, 3], index=lst)
      >>> ser
      a     7
      a     2
      a     8
      b     4
      b     3
      b     3
      dtype: int64
      >>> ser.groupby(level=0).diff()
      a    NaN
      a   -5.0
      a    6.0
      b    NaN
      b   -1.0
      b    0.0
      dtype: float64

  For DataFrameGroupBy:

      >>> data = {"a": [1, 3, 5, 7, 7, 8, 3], "b": [1, 4, 8, 4, 4, 2, 1]}
      >>> df = pd.DataFrame(
      ...     data, index=["dog", "dog", "dog", "mouse", "mouse", "mouse", "mouse"]
      ... )
      >>> df
               a  b
        dog    1  1
        dog    3  4
        dog    5  8
      mouse    7  4
      mouse    7  4
      mouse    8  2
      mouse    3  1
      >>> df.groupby(level=0).diff()
               a    b
        dog  NaN  NaN
        dog  2.0  3.0
        dog  2.0  4.0
      mouse  NaN  NaN
      mouse  0.0  0.0
      mouse  1.0 -2.0
      mouse -5.0 -1.0