groupby и agg: сводные показатели с явными именами агрегатов
Содержание курса
Один ключ, два способа плоской таблицы: as_index=False и reset_index
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinцелое числоn— количество строк таблицы. - Читает следующие
nстрок; каждая содержит три токена через пробел:store(строка без пробелов),qty(целое число),revenue(целое число). Пример строки:Alpha 10 5000. - Создаёт
pd.DataFrameиз словаря списков с ключами'store','qty','revenue'. - Способ A. Группирует DataFrame по
'store'сas_index=Falseи вычисляет за один вызовaggдва агрегата:total_qty=('qty', 'sum')иtotal_rev=('revenue', 'sum'). Сохраняет результат вresult_a. - Способ B. Группирует тот же DataFrame по
'store'безas_index=Falseи вычисляет те же два агрегата с теми же именами. Затем применяет.reset_index(). Сохраняет вresult_b. - Выводит в
stdoutтри служебные строки, а затем по одной строке для каждой строкиresult_a:
columns_a=<список>—list(result_a.columns)в виде Python-списка;columns_b=<список>—list(result_b.columns);equal=<bool>— результатresult_a.equals(result_b)(True если таблицы идентичны);- для каждой строки
result_a, отсортированной по'store', выводит одну строку вида<store> <total_qty> <total_rev>.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Ограничения: n >= 1.
Формат ввода
n store1 qty1 rev1 store2 qty2 rev2 ...
Формат вывода
columns_a=['store', 'total_qty', 'total_rev']
columns_b=['store', 'total_qty', 'total_rev']
equal=True
<store> <total_qty> <total_rev>
...
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Проверяется тестами (1)
- Тест 1Ввод
5 Alpha 10 5000 Beta 4 2000 Alpha 6 3000 Beta 8 4000 Gamma 12 6000
Ожидаемый выводcolumns_a=['store', 'total_qty', 'total_rev'] columns_b=['store', 'total_qty', 'total_rev'] equal=True Alpha 16 8000 Beta 12 6000 Gamma 12 6000
Решение
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
