Pandas: как использовать groupby с несколькими агрегатами
Вы можете использовать следующий базовый синтаксис для использования groupby с несколькими агрегатами в pandas:
df. groupby (' team '). agg ( mean_points=(' points ', np. mean ), sum_points=(' points ', np. sum ), std_points=(' points ', np. std ))
Эта конкретная формула группирует строки DataFrame по переменной Team , а затем вычисляет несколько сводных статистических данных для переменной Points .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: использование Groupby с несколькими агрегатами в Pandas
Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетболистах:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Heat', 'Heat', 'Heat'], ' points ': [18, 22, 19, 14, 14, 11], ' assists ': [5, 7, 7, 9, 12, 9]}) #view DataFrame print (df) team points assists 0 Mavs 18 5 1 Mavs 22 7 2 Mavs 19 7 3 Heat 14 9 4 Heat 14 12 5 Heat 11 9
Мы можем использовать следующий синтаксис, чтобы сгруппировать строки DataFrame по команде , а затем вычислить среднее значение, сумму и стандартное отклонение баллов для каждой команды:
import numpy as np #group by team and calculate mean, sum, and standard deviation of points df. groupby (' team '). agg ( mean_points=(' points ', np. mean ), sum_points=(' points ', np. sum ), std_points=(' points ', np. std )) mean_points sum_points std_points team Heat 13.000000 39 1.732051 Mavs 19.666667 59 2.081666
Результат отображает среднее значение, сумму и стандартное отклонение переменной количества очков для каждой команды .
Вы можете использовать аналогичный синтаксис для выполнения группировки и расчета любого количества агрегатов.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи panda:
Как посчитать уникальные значения с помощью Pandas GroupBy
Как применить функцию к Pandas Groupby
Как создать гистограмму из Pandas GroupBy