Справочная информация. То, что я пытаюсь выполнить sh, - это найти, если "наблюдаемое время" находится между двумя другими временами "slice_begin_time" и "slice_end_time" (12 - 5 минутных срезов в час). В настоящее время это занимает около минуты, чтобы сделать 24-36 часов. Я хочу посмотреть, есть ли другой способ установить это, который сократит количество времени и два цикла for для сравнения наборов данных. Может быть pandas?
Сейчас я отправляю "наблюдаемое время" через a для l oop и другое для l oop, чтобы сравнить оба набора данных до следующего "наблюдаемого времени" с "временем начала среза" "и" время окончания среза ".
Таким образом, каждый 5-минутный срез между '2020-02-20T15: 54: 00Z' и '2020-02-20T16: 54: 00Z' будет иметь соответственно 1 и 2 наблюдаемых_var_01 и заметил_вар_02. Смотрите код ниже.
Example Data:
observed_time = ['2020-02-20T15:54:00Z', '2020-02-20T16:54:00Z']
observed_var_01 = [1,1]
observed_var_02 = [2,2]
slice_begin_time=['2020-02-20T15:50:00Z', '2020-02-20T15:55:00Z', '2020-02-20T16:00:00Z', '2020-02-20T16:05:00Z', '2020-02-20T16:10:00Z','2020-02-20T16:15:00Z', '2020-02-20T16:20:00Z', '2020-02-20T16:25:00Z', '2020-02-20T16:30:00Z', '2020-02-20T16:35:00Z','2020-02-20T16:40:00Z', '2020-02-20T16:45:00Z', '2020-02-20T16:50:00Z', '2020-02-20T16:55:00Z']
slice_end_time=['2020-02-20T15:55:00Z', '2020-02-20T16:00:00Z', '2020-02-20T16:05:00Z', '2020-02-20T16:10:00Z', '2020-02-20T16:15:00Z', '2020-02-20T16:20:00Z', '2020-02-20T16:25:00Z', '2020-02-20T16:30:00Z', '2020-02-20T16:35:00Z', '2020-02-20T16:40:00Z', '2020-02-20T16:45:00Z', '2020-02-20T16:50:00Z', '2020-02-20T16:55:00Z','2020-02-20T17:00:00Z']
### LIBS
from datetime import datetime,timedelta
from dateutil import parser
results01 = []
results02 = []
results03 = []
results04 = []
for i in range(len(observed_time)-1):
for k in range(len(slice_begin_time)):
if parser.parse(str(observed_time[i+1]))<parser.parse(str(slice_end_time[k])) and parser.parse(str(observed_time[i]))>=parser.parse(str(slice_begin_time[k])):
results01.append(slice_begin_time[k])
results02.append(slice_end_time[k])
results03.append(observed_var_01[i])
results04.append(observed_var_02[i])