Несколько сводок сразу в Pandas
Чтобы для каждой группы сразу получить
разные сводки по разным столбцам,
после группировки вызывают метод
agg. В него передают словарь:
ключ - имя столбца, значение -
какую сводку для него посчитать.
Результат - таблица с одной строкой
на группу и столбцами под каждую
сводку.
Создадим таблицу команд, сгруппируем
по team и через метод agg
сложим points, а для bonus
возьмём среднее:
import pandas as pd
data = {
'team': ['X', 'X', 'Y', 'Y'],
'points': [10, 20, 5, 15],
'bonus': [1, 2, None, 1],
}
stats = pd.DataFrame(data)
groups = stats.groupby('team')
summary = groups.agg({
'points': 'sum',
'bonus': 'mean',
})
print(summary) # выведет points bonus
# team
# X 30 1.5
# Y 20 1.0
Для команды X сумма баллов
30, среднее по бонусам 1.5;
для Y - 20 и 1.0.
Пропуск в bonus при среднем
не мешает посчитать сумму по
points.
Соберите таблицу с классом, предметом и двумя числовыми столбцами на несколько строк в каждом классе. Выведите сводку по классам: для одного столбца сумма, для другого - среднее по группе.
Создайте таблицу магазинов с выручкой и скидкой. Получите по каждому магазину две сводки сразу - сумму выручки и среднее по скидке - и выведите таблицу результата.
Из данных о городе, расходе и доходе соберите таблицу. Выведите сводку по городам, где для расхода берётся сумма, а для дохода - среднее значение в группе.