Метод diff
Метод diff применяется к объекту GroupBy
и вычисляет разность между текущим значением и предыдущим
значением внутри каждой группы. Первым параметром можно
передать количество периодов для сдвига (по умолчанию 1).
Метод возвращает объект того же типа, что и исходный.
Синтаксис
groupby_obj.diff([periods])
Пример
Давайте вычислим разности между элементами внутри групп:
import pandas as pd
df = pd.DataFrame({
'group': ['A', 'A', 'B', 'B', 'B'],
'a': [1, 3, 5, 2, 4]
})
grouped = df.groupby('group')
res = grouped['a'].diff()
print(res)
Результат выполнения кода:
0 NaN
1 2.0
2 NaN
3 -3.0
4 2.0
dtype: float64
Пример
Давайте зададим период для вычисления разности:
import pandas as pd
df = pd.DataFrame({
'group': ['A', 'A', 'A', 'B', 'B'],
'a': [10, 20, 30, 5, 15]
})
grouped = df.groupby('group')
res = grouped['a'].diff(periods=2)
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 20.0
3 NaN
4 10.0
dtype: float64
Пример
Давайте применим метод diff ко всей таблице внутри групп:
import pandas as pd
df = pd.DataFrame({
'group': ['X', 'X', 'Y', 'Y'],
'a': [1, 2, 5, 7],
'b': [10, 20, 30, 40]
})
grouped = df.groupby('group')
res = grouped.diff()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 1.0 10.0
2 NaN NaN
3 2.0 10.0