pandas.core.groupby.DataFrameGroupBy.diff#
- DataFrameGroupBy.diff(periods=1, axis=<no_default>)[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. 
- axisaxis to shift, default 0
- Take difference over rows (0) or columns (1). - Deprecated since version 2.1.0: For axis=1, operate on the underlying object instead. Otherwise the axis keyword is not necessary. 
 
- 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