Метод agg аксессора expanding
Метод agg аксессора expanding применяется к DataFrame
или Series и позволяет применить одну или несколько агрегирующих
функций к расширяющемуся окну данных. Первым параметром передаётся
функция, список функций или словарь для разных столбцов.
Метод возвращает DataFrame или Series с результатами
агрегации для каждого элемента окна.
Синтаксис
df.expanding().agg(func, *args, **kwargs)
Пример
Давайте применим функцию суммы к расширяющемуся окну в таблице:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.expanding().agg('sum')
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 3.0 30.0
2 6.0 60.0
3 10.0 100.0
4 15.0 150.0
Пример
Применим несколько агрегирующих функций к одному столбцу:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.expanding().agg(['sum', 'mean'])
print(res)
Результат выполнения кода:
sum mean
0 1.000 1.0
1 3.000 1.5
2 6.000 2.0
3 10.000 2.5
4 15.000 3.0
Пример
Применим словарь с разными функциями для разных столбцов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.expanding().agg({'a': 'sum', 'b': 'mean'})
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 3.0 15.0
2 6.0 20.0
3 10.0 25.0
4 15.0 30.0
Пример
Используем пользовательскую функцию для агрегации:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.expanding().agg(lambda x: x.max() - x.min())
print(res)
Результат выполнения кода:
0 0.0
1 1.0
2 2.0
3 3.0
4 4.0
dtype: float64