Spec-Zone.ru › pandas 1

pandas.DataFrame.diff

DataFrame.diff(periods=1, axis=0)[source]

Первая дискретная разность элементов.

Вычисляет разницу элемента DataFrame по сравнению с другим элементом в DataFrame (по умолчанию - элементом в предыдущей строке).

Параметры
periods:int, по умолчанию 1

Периоды сдвига для вычисления разницы, принимает отрицательные значения.

axis:{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

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.diff.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API