Метод diff
Метод diff применяется к DataFrame
и вычисляет разность между элементами в столбцах
или строках. Первым параметром передаётся количество
периодов для смещения. Если параметр не указан,
вычисляется разность между соседними элементами
(смещение равно 1). Параметр axis
определяет направление вычислений: по строкам
(axis=0) или по столбцам (axis=1).
Синтаксис
df.diff([periods=1[, axis=0]])
Пример
Рассмотрим вычисление разностей между соседними строками:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 4, 7, 11],
'b': [10, 20, 30, 40, 50]
})
print(df.diff())
Результат выполнения кода:
a b
0 NaN NaN
1 1.0 10.0
2 2.0 10.0
3 3.0 10.0
4 4.0 10.0
Первая строка содержит NaN, так как для неё нет предыдущего элемента.
Пример
Укажем смещение 2 периода:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 4, 7, 11],
'b': [10, 20, 30, 40, 50]
})
print(df.diff(periods=2))
Результат выполнения кода:
a b
0 NaN NaN
1 NaN NaN
2 3.0 20.0
3 5.0 20.0
4 7.0 20.0
Первые две строки содержат NaN, так как для них нет элемента на 2 позиции назад.
Пример
Выполним вычисление разностей по столбцам:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30],
'c': [100, 200, 300]
})
print(df.diff(axis=1))
Результат выполнения кода:
a b c
0 NaN 9.0 90.0
1 NaN 18.0 180.0
2 NaN 27.0 270.0
Первый столбец содержит NaN, так как для него нет предыдущего столбца.
Пример
Применим diff к отдельному столбцу:
import pandas as pd
df = pd.DataFrame({
'a': [1, 3, 6, 10, 15],
'b': [5, 10, 15, 20, 25]
})
print(df['a'].diff())
Результат выполнения кода:
0 NaN
1 2.0
2 3.0
3 4.0
4 5.0
Name: a, dtype: float64
Смотрите также
-
метод
pct_change,
который вычисляет процентное изменение между элементами -
метод
shift,
который сдвигает данные на заданное число периодов -
метод
cumsum,
который вычисляет кумулятивную сумму элементов -
метод
rank,
который вычисляет ранги элементов в таблице