将对象转换为时间熊猫并在时间之间进行过滤

时间:2018-11-23 07:37:04

标签: python pandas

我有一个数据框,其中的列包含一系列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 :(得分:1)

通过to_datetimetime创建时间,然后将betweenboolean 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

to_timedelta创建的timedelta s的另一种方法:

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