Должно работать следующее (метод 1):
df_rt['datetime'] = pd.to_datetime(df_rt['Delivery Date']) \
+ pd.to_timedelta(df_rt['Delivery Hour'] - 1, unit='h') \
+ pd.to_timedelta(15*(df_rt['Delivery Interval'] - 1), unit='m')
Более быстрый метод (метод 2):
def format_row(row):
return f'{row["Delivery Date"]} {row["Delivery Hour"] - 1}:{15*(row["Delivery Interval"] - 1)}'
pd.to_datetime(df_rt.apply(format_row, axis='columns'), format='%d-%m-%Y %H:%M')
Время:
Метод1
2.53 ms ± 86.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Метод 2
1.21 ms ± 67.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)