pandas.core.groupby.DataFrameGroupBy.diff — pandas 3.0.0.dev0+2094.g7595ed503d documentation (original) (raw)

DataFrameGroupBy.diff(periods=1)[source]#

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:

periodsint, default 1

Periods to shift for calculating difference, accepts negative values.

Returns:

Series or DataFrame

First differences.

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", "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