Как я могу отфильтровать время в столбце Dataframe для вывода строк и подсчета различных значений в другой строке? - PullRequest
0 голосов
/ 19 октября 2019

У меня есть датафрейм с двумя столбцами, временем и состоянием. Чтобы создать время, я разделил столбец даты и времени, чтобы создать новый столбец, как показано ниже. Новый столбец времени записывается в формате ЧЧ: ММ: СС.

data['time'] = pd.to_datetime(data['date']).dt.time

Существует два состояния: Вперед и Ответ иЯ хочу получить значение len () для каждого из состояний для значений между 9:00:00 и 13:00:00. Я пробовал метод Между_времени, но он требует индекса даты и времени. Любые идеи, которые могли бы помочь?

Пример данных .

Для этого примера я использовал pd.DataFrame.head (). Я отредактировал время для соответствия этому вопросу.

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

Ожидаемый результат :

(9:00:00 и 13:00:00)

Переслать = 800

Ответить = 200

1 Ответ

1 голос
/ 19 октября 2019

Я отредактировал свой ответ на основе некоторых комментариев и новых образцов данных:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...