DataFrame.aggregate() / Series.aggregate()
Метод aggregate() (псевдоним agg()) применяет к данным одну или несколько функций агрегации и возвращает результат в виде скаляра, Series или DataFrame. Часто используется в связке с groupby().
Сигнатура
DataFrame.aggregate(func=None, axis=0, *args, **kwargs)
Series.aggregate(func=None, axis=0, *args, **kwargs)
Параметры
func— функция, имя функции в виде строки, список или словарь функций.axis— 0 (по столбцам, default) или 1 (по строкам).*args,**kwargs— параметры, передаваемые вfunc.
Возвращаемое значение
Scalar, Series или DataFrame в зависимости от func.
Примеры
Пример 1. Одна функция на Series
import pandas as pd
s = pd.Series([10, 20, 30, 40])
print(s.agg("mean"))
25.0
Пример 2. Несколько функций
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
print(s.agg(["min", "max", "mean"]))
min 1.0
max 5.0
mean 3.0
dtype: float64
Пример 3. DataFrame с датчиками
Свод по температурным датчикам Robot Phobo:
import pandas as pd
df = pd.DataFrame({
"temp": [22.1, 22.5, 22.3, 22.8],
"humidity": [55, 57, 56, 60],
})
print(df.agg(["mean", "std"]))
temp humidity
mean 22.425000 57.000
std 0.310913 2.160
Пример 4. Разные функции для разных столбцов
import pandas as pd
df = pd.DataFrame({"temp": [22, 23, 24], "voltage": [4.8, 5.0, 5.1]})
print(df.agg({"temp": "max", "voltage": "min"}))
temp 24.0
voltage 4.8
dtype: float64
Пример 5. С groupby
import pandas as pd
df = pd.DataFrame({
"sensor": ["A", "A", "B", "B"],
"value": [10, 12, 20, 25],
})
print(df.groupby("sensor").agg(["min", "max"]))
value
min max
sensor
A 10 12
B 20 25
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.