允许程序获取最近时间值的函数

时间:2019-03-06 18:19:49

标签: python function for-loop time jupyter-notebook

以下是我的数据集的示例:

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。

P.S .:棘手的部分是两点之间的时间差并不总是5秒;因此,我想编写一个函数,使程序可以获取最接近的时间值。

例如:

在第四次迭代中(在索引3处),循环将花费t = 00:00:16。但是,该时间在数据集中不可用。因此,我想调用一个函数,该函数将提示程序采取最接近00:00:16的时间,即00:00:15。

请注意,上面的for循环是理论上的,仅用于说明所需的内容。另外,数据集存储在Excel工作表中。

我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您计划多次运行此功能,则创建一个优化版本相对便宜-一个简单的二进制搜索(在排序日期上)仍然可能明显优于线性搜索,即使这些日期很奇怪差距。

from list of integers, get number closest to a given value

如果您真的需要提高效率,可以在日期上构建其他树以进行更有效的搜索