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.