Я отредактировал свой ответ на основе некоторых комментариев и новых образцов данных:
d = {'State':['Reply', 'Reply', 'Forward', 'Forward', 'Reply'], 'time': ['04:01:00', '08:04:00', '09:05:00', '12:06:00', '13:07:00']}
data = pd.DataFrame(data=d)
> State time
> 0 Reply 04:01:00
> 1 Reply 08:04:00
> 2 Forward 09:05:00
> 3 Forward 12:06:00
> 4 Reply 13:07:00
between_time
требует, чтобы индексы кадра данных имели правильный формат даты и времени:
data.index = pd.to_datetime(data['time'])
> State time
> time
> 2019-10-19 04:01:00 Reply 04:01:00
> 2019-10-19 08:04:00 Reply 08:04:00
> 2019-10-19 09:05:00 Forward 09:05:00
> 2019-10-19 12:06:00 Forward 12:06:00
> 2019-10-19 13:07:00 Reply 13:07:00
Наконец, вы можете использовать функцию between_time
, чтобы получить то, что вы хотите:
data['State'].between_time('09:00:00', '13:00:00').value_counts()
> Forward 2