Уважаемые знатоки, помогите пожалуйста решить рутинную рабочую задачу. Ежемесячно она меня терзает,сил терпеть это больше нет, а автоматизировать расчет не получается.
Кратко: есть excel таблица, которая отражает количество выполненных операций сотрудником. Файл выгружается из системы учета. При работе сотрудника в ночную смену ( с 20:00 по 8:00 ) его операции разделяются на две строки: с 20:00 по 24:00 и с 24:00 по 08:00. Мне регулярно необходимо мониторить среднюю производительность работника, но вот эти задвоенные строки портят мне всю жизнь.
Изначально попробовал через pandas, перевел excel в DF, далее groupby().mean() и казалось бы, результат вышел. Однако при перепроверке результатов и вылез сей баг: допустим сотрудник в ночную смену сделал 2000 операций, но половина была до полуночи, а вторая половина после полуночи. При аггегировании получается что в среднем он сделал 1000 операций. Тем самым итоговая производительность за месяц сильно занижается. Ковырять руками длинюющий список из 90+ сотрудников идея так себе.
Что я хочу, но не могу получить:
Если сотрудник работает 2 календарных дня подряд, то значения по столбцу с колчичеством работы следует суммировать и записать в новый DF в формате дата-сотрудник-количество операций. Бывает так, что сотрудник выходит на подработку и работает 3 дня пордяд. В таком случае третий повторный день не следует суммировать, а следует учитывать как отдельную рабочую смену( после третьего дня повтора сотрудника точно не будет).
Структура сгруппированного DF:
df1.groupby(['Personnel','Work_Date'])['Boxes_Picked_Picking'].sum().head(50)
Personnel Work_Date
Aleksey 2020-05-25 519
2020-05-26 223
2020-05-27 203
2020-05-29 265
2020-05-30 262
2020-05-31 510
2020-06-02 329
2020-06-03 486
2020-06-04 766
2020-06-07 343
2020-06-08 372
2020-06-10 563
2020-06-11 289
2020-06-12 547
2020-06-14 829
2020-06-19 290
2020-06-20 783
2020-06-22 1006
2020-06-23 467
2020-06-24 875
2020-06-25 571
2020-06-26 16
2020-06-27 292
2020-06-28 562
2020-07-01 378
2020-07-02 542
2020-07-04 832
2020-07-05 429
2020-07-06 599
2020-07-08 88
2020-07-09 328
2020-07-10 877
2020-07-12 916
2020-07-14 190
Как мне разрешить свою задачу, в какую сторону думать?