Вы можете использовать pd.to_datetime()
так:
import pandas as pd
import numpy as np
data = pd.DataFrame(np.array(
[
[2018, 10, 1, 2359],
[2018, 10, 1, 1500],
[2018, 10, 1, 900],
[2018, 10, 1, 1],
[2018, 10, 1, 0]
]
), columns = ['year', 'month', 'day', 'scheduled_departure'])
data['hour'] = np.floor(data['scheduled_departure'] / 100)
data['minute'] = data['scheduled_departure'] % 100
data['scheduled_departure_datetime'] = pd.to_datetime(data[['year', 'month', 'day', 'hour', 'minute']])
print(data['scheduled_departure_datetime'])
Предоставление:
0 2018-10-01 23:59:00
1 2018-10-01 15:00:00
2 2018-10-01 09:00:00
3 2018-10-01 00:01:00
4 2018-10-01 00:00:00
Name: scheduled_departure_datetime, dtype: datetime64[ns]
Я не проверял скорость, но думаю, что это будет быстрее.