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.