我有一个数据框,其中的列包含一系列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()
有什么帮助吗?预先谢谢
答案 0 :(得分:1)
通过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
由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