Доля подходящих событий теплицы

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

Условие

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

В файле events.csv записаны измерения влажности, поступившие от датчиков. Каждое событие ссылается на датчик по его идентификатору.

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

Искомая доля в процентах вычисляется по формуле 100 * p / q, где p — число подходящих событий, а q — общее число строк в файле events.csv. При равенстве значения и порога событие считается подходящим.

Формат ввода

Рядом с программой находятся два файла в кодировке UTF-8 с разделителем запятая.

Файл data.csv содержит от 300 до 1000 строк данных и заголовок: id,zone,temperature

id — целочисленный идентификатор датчика, zone — строковое имя зоны, temperature — целая температура в градусах Цельсия или пустая строка.

Файл events.csv содержит от 300 до 1000 строк данных и заголовок: event_id,sensor_id,humidity

event_id — целочисленный идентификатор события, sensor_id — идентификатор датчика из файла data.csv, humidity — целая влажность в процентах.

В стандартный ввод подаются две строки. В первой строке задан целый порог температуры T. Во второй строке задан целый порог влажности H.

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

Выведите найденную долю событий в процентах с двумя знаками после точки.

Ограничения

Количество строк данных в data.csv: от 300 до 1000.

Количество строк данных в events.csv: от 300 до 1000.

id и sensor_id — целые числа от 1 до 1000000. Все значения sensor_id существуют среди значений id.

Длина zone — от 1 до 20 символов.

Температура — целое число от -20 до 60 либо пустая строка.

Влажность — целое число от 0 до 100.

Пороги T и H — целые числа от -100 до 100.

Файл events.csv содержит хотя бы одну строку данных.

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

Куда дальше