python - 在固定时间间隔后查找最后一个可用时间戳 - pandas 或 numpy

标签 python python-3.x pandas numpy

我有一个包含如下时间序列的数据帧:

time             data                               
00:00:02.338000  1
00:00:02.377000  12
00:00:02.534000  43
00:00:02.628000  23
00:00:02.650000  9.8
00:00:02.654000  11
00:00:02.719000  6
00:00:02.726000  7
00:00:02.737000  123
00:00:02.746000  231
00:00:02.801000  412
00:00:03.010000  123

给定一个时间间隔,我想返回一个时间序列,其中包含给定时间间隔之后的最后一个可用时间戳。例如,对于 100ms 的时间间隔,它应该返回:

time                                            
00:00:02.377000  
00:00:02.377000  
00:00:02.628000  
00:00:02.726000  
00:00:02.746000  
00:00:02.746000  
...

对于大型数据集,使用 for 循环是不可行的。有什么有效的方法可以实现这一目标吗?

最佳答案

如果数据集是有序列表,请对第一个数据集使用二分搜索,并对其余数据进行第二次搜索以找到最后一个条目。如果您要查找的值不在列表中,那么搜索当然可能会给您错误的答案。搜索应该为您提供最接近您需要的位置。您正在查找的元素可能就是返回的元素、返回的元素之前或之后的元素。

可以在此处找到二分搜索的示例: Binary search in a Python list

关于python - 在固定时间间隔后查找最后一个可用时间戳 - pandas 或 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579576/

相关文章:

python - 编译成字节码占用太多内存

python - 如何为 Ansible 剧本选择 Python 解释器?

python - 要列出的 Pandas 列名称

python - 根据包含 Pandas 中特定字符串的列名选择列

python - 在Python中,如果错误将被重新引发,是否有任何理由使用try/except?

python - 查找跳过的索引时间步骤并将值填充到 Pandas DataFrame 中

python - Asyncio 两个循环用于不同的 I/O 任务?

python - 如何删除嵌套列表内部的字符串引号

python - 为什么我不能插入 Python 列表?

pandas - 使用 ArrayType 列将 UDF 重写为 pandas udf