Функция, которая позволяет программе принимать значение ближайшего времени - PullRequest
1 голос
/ 06 марта 2019

Ниже приведен пример моего набора данных:

index     time          value
 0       00:00:01        12
 1       00:00:06        18
 2       00:00:11        28
 3       00:00:15        32
 4       00:00:20        51

Я хотел бы создать цикл for, который выполняет следующую функцию:

for t in range (00:00:01, 23:59:59, 5s):
  if df.Value[t]> df.Value[t+10]:
      print ('True')
  else:
      print('False')

Цикл for начнется свремя = 00:00:01 (1 секунда, начало дня) до времени = 23: 59: 59 (конец дня) с 5-секундным приращением каждый раз.Таким образом, цикл будет принимать значение в определенное время (t) и сравнивать его со значением в момент времени = t + 10 секунд.и если он больше, он напечатает True;в противном случае False.

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

Например:

На четвертой итерации (с индексом 3) цикл примет t = 00:00:16.Однако это время недоступно в наборе данных;поэтому я хотел бы вызвать функцию, которая предложит программе использовать самое близкое время к 00:00:16, то есть 00: 00: 15.

Обратите внимание, что цикл for выше теоретическичтобы показать, что нужно.Кроме того, набор данных хранится в листе Excel.

Буду признателен за любую помощь.Спасибо.

1 Ответ

0 голосов
/ 07 марта 2019

Если вы планируете запускать эту функцию более одного раза, вместо этого создать оптимизированную версию будет относительно дешево - простой бинарный поиск (по отсортированным датам) все же может значительно превзойти ваш линейный поиск, даже если даты странные. пробелы.

из списка целых чисел, получить число, ближайшее к данному значению

Если вам действительно нужно быть эффективным, есть другие деревья, которые вы могли бы построить по датам для более эффективного поиска

...