Пример, начинающийся с df:
import pandas as pd
df = pd.DataFrame({'event_id': ['123', '456'],
'date': ['2018-01-01', '2018-01-01'],
'start_hour' : ['10', '13'],
'duration' : ['1.5', '3']})
df
event_id date start_hour duration
0 123 2018-01-01 10 1.5
1 456 2018-01-01 13 3
Необходимым выводом является длинный df, в котором каждый час события имеет ряд. Длительности, которые не являются целым числом, должны быть округлены до следующего целого числа (например, 1,25 должно идти до 2)
Пример:
result_df = pd.DataFrame({'event_id': ['123', '123', '456', '456', '456'],
'date': ['2018-01-01', '2018-01-01', '2018-01-01', '2018-01-01', '2018-01-01'],
'hour' : ['10', '11', '13', '14', '15']})
result_df
event_id date hour
0 123 2018-01-01 10
1 123 2018-01-01 11
2 456 2018-01-01 13
3 456 2018-01-01 14
4 456 2018-01-01 15