我的数据框有一个时间戳列(dtype: datetime64[ns]
),如下所示
ID TIMESTAMP
1 2014-08-14 17:57:17
2 2014-08-14 17:50:11
3 2014-08-14 17:49:28
4 2014-08-14 17:58:10
5 2014-08-14 17:59:37
6 2014-08-14 17:25:46
7 2014-08-14 17:54:06
8 2014-08-14 17:55:48
9 2014-08-14 17:49:23
10 2014-08-14 17:40:21
...
301 2014-12-21 14:11:52
302 2014-12-21 14:22:22
303 2014-12-21 14:29:19
304 2014-12-21 14:27:37
305 2014-12-21 14:22:33
306 2014-12-21 14:26:25
307 2014-12-21 14:11:13
308 2014-12-21 11:41:54
309 2014-12-21 13:18:44
310 2014-12-21 14:26:31
现在假设我想查找2014-08-04至2014-08-24以及该期间每天17:55至18:00的行,我该如何使用pandas?我想我应该使用Timedelta
,但我没有找到Timedelta
的功能只有几个小时。谢谢。
答案 0 :(得分:3)
丑陋但应该适合你:
In [113]:
df[(df['TIMESTAMP'] > '2014-08-04') & (df['TIMESTAMP'] < '2014-08-24') & (df['TIMESTAMP'].dt.time > dt.time(17,55)) & (df['TIMESTAMP'].dt.time < dt.time(18))]
Out[113]:
ID TIMESTAMP
0 1 2014-08-14 17:57:17
3 4 2014-08-14 17:58:10
4 5 2014-08-14 17:59:37
7 8 2014-08-14 17:55:48
因此我们可以使用日期字符串来比较日期,但是您需要构建时间对象的时间部分