我有一个如下所示的数据框:
In [42]: df[['timestamp', 'elapsed']].head()
Out[42]:
timestamp elapsed
0 2014-11-26 00:00:01.830556 13
1 2014-11-26 00:00:01.830706 14
2 2014-11-26 00:00:01.830158 18
3 2014-11-26 00:00:01.830355 19
4 2014-11-26 00:00:01.830512 24
时间戳是系统收到查询的时刻,经过的时间是处理查询所花费的时间。
由于有多个进程,查询是并行处理的,但我想知道的是我们最多同时处理多少查询(理想情况下,请参阅显示使用情况的图表,但是&# 39;这不是我的问题)。这里的粒度是第二个。
问题在于,(相当规律地)查询执行时间超过1秒,或者我们开始在00:00:01.99处理查询并在下一秒内完成查询,因此我可以[' t只计算一秒钟内的行数。
我需要的是将特定秒内的所有经过时间相加: - 如果我们在同一秒内开始和结束,则添加整个经过的时间 - 如果我们在当前秒之前开始并在当前秒之后结束,则添加1秒的处理时间 - 如果我们从当前秒开始,但在结束之后,则将时间加到第二秒结束 - 如果我们在当前秒之前开始并在其中结束,则相同。
到目前为止,我刚刚创建了一个包含一天所有秒数的数据框,并迭代了我的查询数据框,但这并不是非常有效,所以我想知道是否有更好的解决这类问题的方法。