Мне нужно отметить строки во временном ряду, где временные метки попадают между заданными блоками времени суток;например, когда у меня есть
values = ([ 'motorway' ] * 5000) + ([ 'link' ] * 300) + ([ 'motorway' ] * 7000)
df = pd.DataFrame.from_dict({
'timestamp': pd.date_range(start='2018-1-1', end='2018-1-2', freq='s').tolist()[:len(values)],
'road_type': values,
})
df.set_index('timestamp', inplace=True)
, мне нужно добавить столбец rush
, который помечает строки, где timestamp
находится между 06:00
и 09:00
или 15:30
и 19:00
.Я видел Между-временем , но я не знаю, как применить его здесь.
edit: на основе этот ответ Мне удалось собрать
df['rush'] = df.index.isin(df.between_time('00:00:15', '00:00:20', include_start=True, include_end=True).index) | df.index.isin(df.between_time('00:00:54', '00:00:59', include_start=True, include_end=True).index)
но мне интересно, нет ли более элегантного способа.