dask.dataframe.DataFrame.diff

dask.dataframe.DataFrame.diff

DataFrame.diff(periods=1, axis=0)

元素的第一次离散差分。

此文档字符串是从 pandas.core.frame.DataFrame.diff 复制而来的。

Dask 版本可能存在一些不一致性。

备注

Pandas 目前使用 object-dtype 列来表示带有缺失值的布尔数据。这可能会导致布尔特定操作(如 |)出现问题。为了启用布尔特定操作,尽管会牺牲与 pandas 不匹配的元数据,请在 shift 之后使用 .astype(bool)

计算DataFrame元素与DataFrame中另一个元素的差异(默认是与前一行的元素比较)。

参数
时期int, 默认值为 1

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

{0 或 ‘index’, 1 或 ‘columns’}, 默认 0

按行 (0) 或列 (1) 取差值。

返回
DataFrame

序列的第一次差分。

参见

DataFrame.pct_change

给定周期数内的百分比变化。

DataFrame.shift

通过可选的时间频率,将索引按所需周期数进行偏移。

Series.diff

对象的第一次离散差分。

注释

对于布尔型数据类型,这使用 operator.xor() 而不是 operator.sub()。结果是根据 DataFrame 中的当前数据类型计算的,但结果的数据类型始终为 float64。

示例

与上一行的差异

>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6],  
...                    'b': [1, 1, 2, 3, 5, 8],
...                    'c': [1, 4, 9, 16, 25, 36]})
>>> df  
   a  b   c
0  1  1   1
1  2  1   4
2  3  2   9
3  4  3  16
4  5  5  25
5  6  8  36
>>> df.diff()  
     a    b     c
0  NaN  NaN   NaN
1  1.0  0.0   3.0
2  1.0  1.0   5.0
3  1.0  1.0   7.0
4  1.0  2.0   9.0
5  1.0  3.0  11.0

与前一列的差异

>>> df.diff(axis=1)  
    a  b   c
0 NaN  0   0
1 NaN -1   3
2 NaN -1   7
3 NaN -1  13
4 NaN  0  20
5 NaN  2  28

与前第三行的差异

>>> df.diff(periods=3)  
     a    b     c
0  NaN  NaN   NaN
1  NaN  NaN   NaN
2  NaN  NaN   NaN
3  3.0  2.0  15.0
4  3.0  4.0  21.0
5  3.0  6.0  27.0

与下一行的区别

>>> df.diff(periods=-1)  
     a    b     c
0 -1.0  0.0  -3.0
1 -1.0 -1.0  -5.0
2 -1.0 -1.0  -7.0
3 -1.0 -2.0  -9.0
4 -1.0 -3.0 -11.0
5  NaN  NaN   NaN

输入数据类型中的溢出

>>> df = pd.DataFrame({'a': [1, 0]}, dtype=np.uint8)  
>>> df.diff()  
       a
0    NaN
1  255.0