На самом деле я нашел ответ. Сначала нам нужно создать диапазон в индексе отметки времени, в котором мы хотим работать. с rng = pd.date_range('2019-01-10', periods=35, freq='H')
Чем разделить фрейм данных с данными, содержащими только эти длительности df = df.between_time('18:00:01', '6:00')
А для циклической части вы можете выполнить цикл с вашими данными с помощью
for i, g in df.groupby(pd.Grouper(freq='12H', base=6, closed='right')):
if not g.empty:
*start working on the loop*