Метод diff
Метод diff применяется к Series
и вычисляет дискретную разность между элементами.
Параметр periods задаёт количество шагов
для вычисления разности. По умолчанию вычисляется
разность с предыдущим элементом (periods=1).
Первый элемент всегда принимает значение NaN,
так как для него нет предыдущего значения.
Синтаксис
ser.diff([periods])
Метод принимает один необязательный параметр:
-
periods- количество шагов для вычисления разности. Может быть положительным или отрицательным числом. По умолчанию равен1. Если указать положительное значение, разность считается от текущего элемента к предыдущему. Отрицательное значение меняет направление.
Пример
Создадим Series и вычислим разность между соседними элементами:
import pandas as pd
ser = pd.Series([1, 3, 5, 10, 20])
res = ser.diff()
print(res)
Результат выполнения кода:
0 NaN
1 2.0
2 2.0
3 5.0
4 10.0
dtype: float64
Пример
Изменим количество шагов для вычисления разности:
import pandas as pd
ser = pd.Series([1, 3, 5, 10, 20])
res = ser.diff(periods=2)
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 4.0
3 7.0
4 15.0
dtype: float64
В этом случае разность вычисляется с элементом, находящимся на два шага назад.
Пример
Укажем отрицательное значение параметра periods
для вычисления разности с последующими элементами:
import pandas as pd
ser = pd.Series([1, 3, 5, 10, 20])
res = ser.diff(periods=-1)
print(res)
Результат выполнения кода:
0 -2.0
1 -2.0
2 -5.0
3 -10.0
4 NaN
dtype: float64
Теперь последний элемент принимает значение NaN,
так как для него нет следующего элемента.
Пример
Применим метод к Series с текстовыми данными:
import pandas as pd
ser = pd.Series(['a', 'c', 'e', 'g'])
res = ser.diff()
print(res)
Результат выполнения кода:
0 NaN
1 c
2 e
3 g
dtype: object
Для строковых данных метод возвращает разность в виде самих элементов, так как операция вычитания для строк не определена.
Смотрите также
-
метод
pct_change,
который вычисляет процентное изменение между элементами -
метод
shift,
который сдвигает элементы Series -
метод
cumsum,
который вычисляет кумулятивную сумму элементов -
метод
rank,
который вычисляет ранги элементов Series