Комментарии 8
Т.к имел дело с похожими расчетами, подскажу вам несколько направлений для повышения надежности, тестируемости и читаемости кода:
При получении данных из внешних систем, используйте сериализаторы (десериализаторы) для валидации и предобработки полученных данных. Это поможет избавиться от возможных проблем при получении на вход программы данных, которые вы не ожидали.
Рассматривайте строку таблицы как объект определенного класса (используйте ООП). Размещайте необходимые методы для расчета показателей внутри этого класса.
Так вы получите более структурированный код, который можно переиспользовать в больших приложениях.
Зачем такое сложное создание словаря, есть же to_dict у Pandas, выбираете две колонки и делаете to_dict, никаких iterrows. Ну может параметр orient ещё угадать там. Если вы делаете iterrows, обычно это значит, что вы не знаете какого-то метода Pandas.
Весьма странный набор критериев для трудового "участия".
Не хватает именно "участия".
Какой % от плана бригады пришёлся на конкретного человека. Ведь можно самому обслуживать станок, делать без замечаний, не иметь дисциплинарных взысканий, но сделать малое количество деталей. А кто-нибудь будет конфликтовать, нарушать дисциплину, но в итоге изготовит более других (ситуация редкая и такие рок-звезды встречаются не часто)
Эти критерии были приведены для примера, вы можете в вашем случае указать абсолютно любые критерии, которые есть у вас на предприятии. И, еще, чаще всего из моего опыта, бригада работает на общий результат и они должны выполнить определенный план. Не выполнили план, не будет премии у всей бригады, включая руководство. И это не учитывается в КТУ.
Расчет КТУ с использованием библиотеки pandas