DataFrame.diff() / Series.diff()

Метод diff() вычисляет разность каждого элемента с элементом, сдвинутым на periods позиций. Первые periods значений становятся NaN. Часто используется как дискретный аналог производной.

Сигнатура

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

Параметры

  • periods — величина сдвига (целое, может быть отрицательным).

  • axis — 0 (строки) или 1 (столбцы), только для DataFrame.

Возвращаемое значение

Объект того же класса с разностями.

Примеры

Пример 1. Базовая разность

import pandas as pd

s = pd.Series([10, 12, 15, 14, 20])
print(s.diff())
0    NaN
1    2.0
2    3.0
3   -1.0
4    6.0
dtype: float64

Пример 2. Скорость по координатам

Координата робота во времени; разность даёт смещение между моментами:

import pandas as pd

x = pd.Series([0.0, 0.5, 1.1, 1.6])
print(x.diff())
0    NaN
1    0.5
2    0.6
3    0.5
dtype: float64

Пример 3. С шагом 2

import pandas as pd

s = pd.Series([1, 2, 4, 7, 11])
print(s.diff(periods=2))
0    NaN
1    NaN
2    3.0
3    5.0
4    7.0
dtype: float64

Пример 4. Отрицательный сдвиг

import pandas as pd

s = pd.Series([1, 3, 6, 10])
print(s.diff(periods=-1))
0   -2.0
1   -3.0
2   -4.0
3    NaN
dtype: float64

Пример 5. DataFrame по столбцам

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 4], "b": [10, 15, 25]})
print(df.diff())
     a     b
0  NaN   NaN
1  1.0   5.0
2  2.0  10.0

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.