pandas.core.groupby.DataFrameGroupBy.diff#

DataFrameGroupBy.diff(periods=1)[源代码]#

元素的第一个离散差分。

计算每个元素与组中另一个元素的差异(默认是上一行的元素)。

参数:
periodsint, 默认 1

用于计算差异的周期位移,接受负值。

返回:
Series 或 DataFrame

首先的区别。

参见

Series.groupby

对一个Series应用groupby函数。

DataFrame.groupby

对 DataFrame 的每一行或每一列应用一个 groupby 函数。

例子

对于 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

对于 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