Метод agg
Метод agg (сокращение от aggregate) применяется к серии Series и позволяет применить одну или несколько агрегирующих функций к данным. В качестве аргумента можно передать имя встроенной функции, пользовательскую функцию или список функций. Метод возвращает скалярное значение, серию или датафрейм в зависимости от переданных функций.
Синтаксис
ser.agg(func, axis=0, *args, **kwargs)
Основные параметры метода agg:
-
func- функция или список функций для агрегации. Может быть именем функции (строка), вызываемым объектом или их комбинацией. -
axis- ось для агрегации. Для серии всегда равно0, так как серия одномерная. -
*args, **kwargs- дополнительные аргументы, передаваемые в функцию агрегации.
Пример
Давайте применим функцию sum к серии для нахождения суммы всех элементов:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.agg('sum')
print(res)
Результат выполнения кода:
15
Пример
Теперь применим сразу несколько агрегирующих функций, передав их списком:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.agg(['sum', 'mean', 'std'])
print(res)
Результат выполнения кода:
sum 15.000000
mean 3.000000
std 1.581139
dtype: float64
Пример
Можно использовать пользовательскую функцию для агрегации. Например, посчитаем сумму квадратов элементов:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.agg(lambda x: (x ** 2).sum())
print(res)
Результат выполнения кода:
55
Пример
Передадим в метод словарь, чтобы получить результат с произвольными именами для каждой агрегации:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.agg({
'total': 'sum',
'average': 'mean',
'deviation': 'std'
})
print(res)
Результат выполнения кода:
total 15.000000
average 3.000000
deviation 1.581139
dtype: float64
Пример
Агрегация с использованием встроенных функций, принимающих аргументы. Найдём 75-й процентиль:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.agg('quantile', q=0.75)
print(res)
Результат выполнения кода:
4.0