Выберите данные между ночными и дневными часами - PullRequest
0 голосов
/ 18 марта 2019

Мои данные выглядят так: это минутные данные за 2 года.

  1. 2017-04-02 00: 00: 00
  2. 2017-04-02 00: 01: 00
  3. 2017-04-02 00: 02: 00
  4. 2017-04-02 00: 03: 00
  5. 2017-04-02 00: 04: 00
  6. ....
  7. 2017-04-02 23:59:00
  8. ...
  9. 2019-02-01 22: 54: 00
  10. 2019-02-01 22: 55: 00
  11. 2019-02-01 22: 56: 00
  12. 2019-02-01 22: 57: 00
  13. 2019-02-01 22: 58: 00
  14. 2019-02-01 22: 59: 00
  15. 2019-02-01 23: 00: 00

Я хочу получить доступ ко всем строкам данных между концом рабочего дня и началом следующего. Пример между 2018-04-02 18:00:00 2018-04-03 05: 00: 00 для всех дней в моем фрейме данных. Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 18 марта 2019

Если вы используете DatetimeIndex, тогда вы можете использовать .between_time

import pandas as pd
df = pd.DataFrame({'date': pd.date_range('2017-04-02', freq='90min', periods=100)})
df = df.set_index('date')

df.between_time('18:00', '5:00')

#date
#2017-04-02 00:00:00
#2017-04-02 01:30:00
#2017-04-02 03:00:00
#2017-04-02 04:30:00
#2017-04-02 18:00:00
#2017-04-02 19:30:00
#2017-04-02 21:00:00
#2017-04-02 22:30:00
#....
1 голос
/ 18 марта 2019

Одним из подходов является логическое индексирование, основанное на условиях столбца или индекса datetime.Предполагая, что ваш DataFrame имеет имя df и его DatetimeIndex равен данным примера, который вы опубликовали, попробуйте это:

df[(df.index.hour >= 18) | (df.index.hour <= 5)]
...