groupby и agg: сводные показатели с явными именами агрегатов
Содержание курса
Два ключа, четыре агрегата: groupby по region и channel с as_index=False
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinцелое числоn— количество строк таблицы. - Читает следующие
nстрок; каждая содержит четыре токена через пробел:region(строка без пробелов),channel(строка без пробелов),amount(целое число),orders(целое число). Пример строки:Север online 5000 10. - Создаёт
pd.DataFrameиз словаря списков с ключами'region','channel','amount','orders'. - Группирует DataFrame по
['region', 'channel']сas_index=Falseи вычисляет за один вызовaggчетыре именованных агрегата:
total_amount=('amount', 'sum')avg_amount=('amount', 'mean')max_orders=('orders', 'max')tx_count=('orders', 'count')
Сохраняет результат в переменную result.
5. Выводит в stdout:
- строку
columns=<список>—list(result.columns)в виде Python-списка; - строку
shape=<кортеж>—result.shape; - для каждой строки
result, отсортированной по'region', затем по'channel', выводит одну строку вида<region> <channel> <total_amount> <avg_amount> <max_orders> <tx_count>, гдеavg_amountокруглён до двух знаков после запятой.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Ограничения: n >= 1.
Формат ввода
n region1 channel1 amount1 orders1 region2 channel2 amount2 orders2 ...
Формат вывода
columns=['region', 'channel', 'total_amount', 'avg_amount', 'max_orders', 'tx_count']
shape=(<строк>, 6)
<region> <channel> <total_amount> <avg_amount> <max_orders> <tx_count>
...
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Проверяется тестами (1)
- Тест 1Ввод
6 Север online 5000 10 Север offline 3000 6 Юг online 4000 8 Юг offline 2000 4 Север online 1000 2 Юг online 500 1
Ожидаемый выводcolumns=['region', 'channel', 'total_amount', 'avg_amount', 'max_orders', 'tx_count'] shape=(4, 6) Север offline 3000 3000.0 6 1 Север online 6000 3000.0 10 2 Юг offline 2000 2000.0 4 1 Юг online 4500 2250.0 8 2
Решение
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
