如何使用time在datetimeIndex数组中进行索引

Vic*_*tor 1 python datetime dataframe pandas

我有一个pandas数据帧,其日期时间作为其索引(如下所示)

              ['2018-02-13 11:55:00', '2018-02-13 12:00:00',
               '2018-02-13 12:05:00', '2018-02-13 12:10:00',
               '2018-02-13 12:15:00', '2018-02-13 12:20:00',
               '2018-02-13 12:25:00', '2018-02-13 12:30:00',
               '2018-02-13 12:35:00', '2018-02-13 12:40:00',
               ...
               '2018-02-19 04:40:00', '2018-02-19 04:45:00',
               '2018-02-19 04:50:00', '2018-02-19 05:05:00',
               '2018-02-19 05:10:00', '2018-02-19 05:15:00',
               '2018-02-19 05:20:00', '2018-02-19 05:25:00',
               '2018-02-19 05:30:00', '2018-02-19 05:40:00'])
Run Code Online (Sandbox Code Playgroud)

我想过滤所有时间为12:00:00的值,因此我正在寻找返回值

['2018-02-13 12:00:00','2018-02-14 12:00:00','2018-02-15 12:00:00','2018-02-16 12:00:00','2018-02-17 12:00:00', '2018-02-18 12:00:00']

我该如何进行这样的索引呢?

cs9*_*s95 6

如果要在中午12:00找到与中午相对应的条目,则使用小时属性是不够的.而是将索引/日期范围与datetime对象进行比较:

dt = pd.date_range('2018-02-13', '2018-02-19', freq='1h')
dt[dt.time == datetime.time(12)]

DatetimeIndex(['2018-02-13 12:00:00', '2018-02-14 12:00:00',
               '2018-02-15 12:00:00', '2018-02-16 12:00:00',
               '2018-02-17 12:00:00', '2018-02-18 12:00:00'],
              dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

如果你希望引入分钟或秒部分,只需更改datetime.time(12)datetime.time(12, 5)了下午12点05分00秒,或datetime.time(12, 5, 30)为下午12时05分30秒,依此类推.