pandas, python - как выбрать конкретное время в временных рядах

Я работал в течение некоторого времени, используя python и pandas для анализа набора почасовых данных, и нахожу это довольно хорошим (исходя из Matlab.)

Теперь я вроде как застрявший. Я создал свой DataFrameследующим образом:

SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)

Теперь я хочу выбрать данные за все дни с 10 до 13 часов и с 20 до 23 часов, чтобы использовать данные для дальнейших расчетов. До сих пор я нарезал данные, используя

 selectedData=ts[begin:end]

, и я уверен, что получу какой-то грязный цикл для выбора необходимых данных. Но должен быть более элегантный способ индексировать именно то, что я хочу. Я уверен, что это распространенная проблема, и решение в псевдокоде должно выглядеть примерно так:

myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]

Кстати, я инженер, а не программист :) ... пока

16
задан piRSquared 4 January 2017 в 22:59
поделиться