как использовать время для индексации в массиве datetimeIndex - PullRequest
0 голосов
/ 02 октября 2018

У меня есть фрейм данных 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'])

Я хотел бы отфильтровать, например, все значения, имеющие время 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']

Как я могу выполнить такую ​​индексацию, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы можете фильтровать, используя strftime

df[df.index.strftime('%H:%M:%S') == '12:00:00']
0 голосов
/ 02 октября 2018

Использование атрибута часа недостаточно, если вы хотите найти записи, соответствующие полудню в 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)

Если вы хотите ввести компонент минут или секунд, просто измените datetime.time(12) на datetime.time(12, 5) для 12:05:00:00 или datetime.time(12, 5, 30) в 12:05:30 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...