Пожалуйста, попробуйте
Привести временную метку к дате и отсортировать по возрастанию
df['timestamp']=pd.to_datetime(df['timestamp']).sort_values(ascending=True)
Сбросить индекс, но не сбрасывать, чтобы сохранить идентификатор
df.reset_index(drop=False, inplace=True)
Установить метку времени как новый индекс разрешить использование df.betweeen time
df.set_index(df['timestamp'], inplace=True)
df.between_time('12:00', '13:00')