Категория с наибольшей медианной ценой

тема: Таблицы: фильтр и группировка · уровень: средний

Условие

В файле data.csv содержатся позиции из чеков супермаркета. Каждая строка соответствует одному товару в чеке и содержит дату покупки, категорию товара и цену позиции.

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

Медианой набора из m чисел после сортировки называется центральный элемент, если m нечётно. Если m чётно, медиана равна среднему арифметическому двух центральных элементов. Для значений x[0] <= x[1] <= ... <= x[m-1]: при нечётном m медиана равна x[m // 2], при чётном m медиана равна (x[m // 2 - 1] + x[m // 2]) / 2.

Требуется вывести название категории с наибольшей медианной ценой в указанном месяце. Гарантируется, что в каждом допустимом месяце у каждой категории есть хотя бы одна позиция с известной ценой. Если наибольшая медианная цена достигается у нескольких категорий, выводится лексикографически меньшее название категории.

Формат ввода

В каталоге с программой находится файл data.csv в кодировке UTF-8. Разделитель полей — запятая, первая строка содержит заголовки.

Файл содержит столбцы receipt_id, purchase_date, category, item_price.

В стандартный ввод подаётся одна строка с месяцем в формате YYYY-MM. Учитываются строки файла, у которых значение purchase_date начинается с указанного месяца.

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

Выведите одно название категории с наибольшей медианной ценой.

Округление не применяется, так как выводится строковое название категории.

Ограничения

В файле от 300 до 2000 строк с данными.

receipt_id — целое число от 1 до 1000000.

purchase_date имеет формат YYYY-MM-DD, год равен 2025, месяц от 01 до 12, день от 01 до 28.

category содержит от 3 до 30 символов.

item_price — положительное число с двумя знаками после десятичной точки от 1.00 до 5000.00 либо пустая строка.

Во входе указан месяц 2025 года, присутствующий в файле.

Решить задачу с автопроверкой на Python →

Куда дальше