如何检查numpy日期时间是否在time1和time2之间(没有日期)。 假设我有一系列日期时间,我想检查其工作日,以及它是否在13:00和13:30之间。例如
2014-03-05 22:55:00
是星期三,它不是在13:00到13:30之间
答案 0 :(得分:0)
使用pandas,您可以使用DatetimeIndex.indexer_between_time
方法查找时间在13:00到13:30之间的日期。
例如,
import pandas as pd
dates = pd.date_range('2014-3-1 00:00:00', '2014-3-8 0:00:00', freq='50T')
dates_between = dates[dates.indexer_between_time('13:00','13:30')]
wednesdays_between = dates_between[dates_between.weekday == 2]
这是dates
中的前5项:
In [95]: dates.tolist()[:5]
Out[95]:
[Timestamp('2014-03-01 00:00:00', tz=None),
Timestamp('2014-03-01 00:50:00', tz=None),
Timestamp('2014-03-01 01:40:00', tz=None),
Timestamp('2014-03-01 02:30:00', tz=None),
Timestamp('2014-03-01 03:20:00', tz=None)]
请注意,这些日期都在13:00到13:30之间:
In [96]: dates_between.tolist()[:5]
Out[96]:
[Timestamp('2014-03-01 13:20:00', tz=None),
Timestamp('2014-03-02 13:30:00', tz=None),
Timestamp('2014-03-04 13:00:00', tz=None),
Timestamp('2014-03-05 13:10:00', tz=None),
Timestamp('2014-03-06 13:20:00', tz=None)]
在这些日期中,这是唯一的星期三:
In [99]: wednesdays_between.tolist()
Out[99]: [Timestamp('2014-03-05 13:10:00', tz=None)]