Конвертируйте объект в панды времени и фильтруйте время - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть фрейм данных со столбцом, содержащим серию элементов dtype'o ':

0         17:32:16
1         17:32:20
2         17:32:24
3         17:32:28
4         17:32:32
5         17:32:36
6         17:32:40
7         17:32:44
8         17:32:48
9         17:32:52
10        17:32:56
11        17:33:00
12        17:33:04
13        17:33:08
14        17:33:12
15        17:33:16

как я могу преобразовать его во время для фильтрации, например, между 17:32:30 и17:33:10?В тот момент я безуспешно пытался:

df_result['a']=datetime.datetime(df_result['a'], '%H%M%S').time()

любая помощь?заранее спасибо

1 Ответ

0 голосов
/ 23 ноября 2018

Создайте время с помощью to_datetime с time, а затем используйте between с boolean indexing:

from datetime import time

df_result['a'] = pd.to_datetime(df_result['a']).dt.time
df_result = df_result[df_result['a'].between(time(17, 32, 30), time(17, 33, 10))]

print (df_result)
           a
4   17:32:32
5   17:32:36
6   17:32:40
7   17:32:44
8   17:32:48
9   17:32:52
10  17:32:56
11  17:33:00
12  17:33:04
13  17:33:08

Другой подход с timedelta s, созданный to_timedelta:

df_result['a'] = pd.to_timedelta(df_result['a'])
df_result = df_result[df_result['a'].between('17:32:30', '17:33:10')]

print (df_result)
          a
4  17:32:32
5  17:32:36
6  17:32:40
7  17:32:44
8  17:32:48
9  17:32:52
10 17:32:56
11 17:33:00
12 17:33:04
13 17:33:08
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...