현재 1 초 간격으로 메시지를 그룹화하려고합니다.시간 간격으로 메시지 그룹화
def time_deltas(infile):
entries = (line.split() for line in open(INFILE, "r"))
ts = {}
for e in entries:
if " ".join(e[2:5]) == "T out: [O]":
ts[e[8]] = e[0]
elif " ".join(e[2:5]) == "T in: [A]":
in_ts, ref_id = e[0], e[7]
out_ts = ts.pop(ref_id, None)
yield (float(out_ts),ref_id[1:-1],(float(in_ts)*1000 - float(out_ts)*1000))
INFILE = 'C:/Users/klee/Documents/test.txt'
import csv
with open('test.csv', 'w') as f:
csv.writer(f).writerows(time_deltas(INFILE))
그러나 나는 "에서 T : [A]"의 수를 계산하려면 : 나는 현재이 함께 시간의 대기 시간을 계산하고있어 전송됩니다 초당 메시지를, 그리고이 작업을 시도하고있다 그렇게 :
여기에서 찾을 수 있습니다import datetime
import bisect
import collections
data=[ (datetime.datetime(2010, 2, 26, 12, 8, 17), 5594813L),
(datetime.datetime(2010, 2, 26, 12, 7, 31), 5594810L),
(datetime.datetime(2010, 2, 26, 12, 6, 4) , 5594807L),
]
interval=datetime.timedelta(seconds=50)
start=datetime.datetime(2010, 2, 26, 12, 6, 4)
grid=[start+n*interval for n in range(10)]
bins=collections.defaultdict(list)
for date,num in data:
idx=bisect.bisect(grid,date)
bins[idx].append(num)
for idx,nums in bins.iteritems():
print('{0} --- {1}'.format(grid[idx],len(nums)))
: Python: group results by time intervals
(나는 단위가 내가 원하는 오프 될 것이다 실현,하지만 난 그냥 일반적인 생각으로 찾고 있어요 ...)
저는 지금까지 대부분 실패했으며 어떤 도움을 주셨습니다. 당신이 양분과 시간 간격에 그리드를 기반으로하지 않는 경우는 쉽게
082438.577652 - T in: [A] accepted. ordID [F25Q6] timestamp [082438.575880] RefNumber [6018786] State [L]
감사합니다 !! 이것은 놀랍게도 작동합니다. : D – eunhealee
대단히 반갑습니다. –
죄송합니다. 어떻게 CSV 파일에 기록 할 수 있습니까? – eunhealee