[英]What is the most efficient way to count how many rows in a dataframe were “active” for every minute of a day?
[英]Most efficient way to keep count of past minute events
我需要一個過去X MINUTES中發生的特定事件的實時計數器。
下面的偽代碼完成了我想做的事情,但是效率很低。 如果我將WINDOW
10分鍾(600秒),並且發生了很多事件,那么下面的代碼將變得難以運行!
import time
import random
WINDOW = 20 #time, in seconds, for which we want to sum events before they expire
event = list()
while True:
#REMOVE FROM THE `event` list the elements more than 20 seconds old
event = [i for i in event if i+WINDOW>time.time()]
# Randomly make events happen
if random.randint(1,100)<50:
event.append((time.time()))
time.sleep(.5)
#Once every 10 seconds, print on screen the number of events that happened in the past 20 seconds
if round(time.time()) % 10 ==0:
print(f'We have {len(event)} events in the past {WINDOW} seconds')
time.sleep(1)
嘗試反向迭代並在找到第一個舊事件時剪切列表:
tim=time.time() # called only once
for idx in range(len(events)-1,-1,-1):
if events[idx]+WINDOW<= tim:
events[:idx+1]=""
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.