pandas.core.groupby.DataFrameGroupBy.diff #

DataFrameGroupBy。diff ( period = 1 , axis = _NoDefault.no_default ) [来源] #

元素的第一个离散差分。

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

参数
周期int,默认 1

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

axis轴要平移,默认0

对行 (0) 或列 (1) 求差。

自版本 2.1.0 起已弃用:对于 axis=1,改为对基础对象进行操作。否则,axis 关键字不是必需的。

返回
系列或数据框

首先的区别。

也可以看看

Series.groupby

将函数 groupby 应用于系列。

DataFrame.groupby

将函数 groupby 应用于 DataFrame 的每一行或每一列。

例子

对于系列分组依据:

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