Статистика заказов по категориям через named aggregation

Easy pandas pandas Ozon

Условие задачи

Дан DataFrame orders с колонками: order_id (id заказа), category (категория товара), revenue (выручка по заказу, ₽), quantity (кол-во единиц). Посчитай по каждой категории три показателя через named aggregation в .agg(): orders_count — число заказов (count по order_id), total_revenue — суммарную выручку (sum по revenue), avg_quantity — среднее количество единиц (mean по quantity). Верни DataFrame с колонками category, orders_count, total_revenue, avg_quantity, отсортированный по total_revenue по убыванию, с непрерывным индексом от 0 (reset_index(drop=True)). Реализуй category_stats(orders).

Темы

pandas groupby named-aggregation agg sort

Подсказки

Что проверяет эта задача

Задача «Статистика заказов по категориям через named aggregation» учит обрабатывать табличные данные в pandas: фильтрация, группировка, объединение и метрики. Такие задачи дают на собеседованиях в Ozon и других IT-компаниях. Уровень лёгкий — база, которую ждут от любого аналитика на Python.

Как подступиться к решению

Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.

В pandas один и тот же результат часто достаётся разными путями — через groupby, pivot_table, merge или векторные операции над колонками. Важно выбрать читаемый и быстрый: встроенные векторные методы почти всегда обгоняют циклы и построчный apply. На собеседовании ценят не только правильный ответ, но и то, как ты объясняешь выбор подхода, обрабатываешь пропуски (NaN) и оцениваешь, что будет на больших данных.

Разобраться в pandas системно — бесплатный курс «Pandas с нуля» и гайды по pandas.

Открыть задачу в тренажёре → ← Все Python-задачи