pandas: группировки, соединения и упорядоченные показатели

groupby и transform: групповые признаки на уровне строк и фильтрация групп

Содержание курса

Фильтрация магазинов по суммарной выручке через transform + булевую маску

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.

Что нужно сделать

Напишите программу, которая:

  1. Читает из stdin целое число n — количество строк таблицы.
  2. Читает следующие n строк; каждая содержит три токена через пробел: store (строка без пробелов), product (строка без пробелов), revenue (целое число). Пример строки: Alpha Laptop 300.
  3. Создаёт pd.DataFrame с именем df из словаря списков с ключами 'store', 'product', 'revenue'.
  4. Добавляет в df столбец 'store_total' — суммарную выручку каждого магазина для каждой строки — через df.groupby('store')['revenue'].transform('sum').
  5. Читает из stdin целое число threshold.
  6. Строит булевую маску mask = df['store_total'] > threshold и создаёт df_big = df.loc[mask].
  7. Выводит в stdout ровно три блока:
  • Блок 1. Строку store_total values:, затем значения столбца 'store_total' через пробел (в порядке исходных строк).
  • Блок 2. Строку filtered rows: <k>, где k — число строк в df_big.
  • Блок 3. Для каждой строки df_big (в порядке возрастания исходного индекса) одну строку вида <store> <product> <revenue>.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

n
store1 product1 revenue1
...
storeN productN revenueN
threshold

Формат вывода

store_total values:
<v1> <v2> ... <vN>
filtered rows: <k>
<store> <product> <revenue>
...
О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Тест 1
    Ввод
    8
    Alpha Laptop 300
    Beta Phone 150
    Alpha Monitor 200
    Gamma Tablet 80
    Beta Cable 50
    Gamma Mouse 40
    Alpha Keyboard 100
    Beta Charger 60
    250
    Ожидаемый вывод
    store_total values:
    600 260 600 120 260 120 600 260
    filtered rows: 6
    Alpha Laptop 300
    Beta Phone 150
    Alpha Monitor 200
    Beta Cable 50
    Alpha Keyboard 100
    Beta Charger 60
Решение
Как проверяется решение

Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.