我有一个从日志文件中解析出来的数据集(相当大),如下所示:
{ id_1: [(1, 1554251220), (2, 1554252310), (3, 1554253199),...], id_2: [(1, 1554251220), (2, 1554252310), (3, 1554253199),...], id_3: [(1, 1554251220), (2, 1554252310), (3, 1554253199),...] ... }
这是一本字典,每个键都有一个元组列表作为其值。键代表唯一的ID,而元组的第一个元素代表版本号,第二个元素代表时间戳。
我希望能够找到每个id的每个后续版本之间的时间差,即版本1和2之间,版本2和3之间,然后3和4之间的时间差...
赞:
timestamp(2) - timestamp(1) = 1554252310 - 1554251220
timestamp(3) - timestamp(2) = 1554253199 - 1554252310
...
for key in dictionary:
for i in range(len(dictionary[key])):
delta = dictionary[key][i][1] - dictionary[key][i+1][1]
outlist.append(delta)
我尝试解析每个ID的每个列表并计算时间增量,但是它没有用。实现这一目标的最佳方法是否涉及pandas
?就像这里:Calculate time difference between Pandas Dataframe indices
有没有不使用pandas
的方法吗?
一旦有了这些-确定所有ID的平均增量的最有效方法是什么?
答案 0 :(得分:0)
也许这可以帮助您
deltas = {}
for id, stamps in dictionary.items():
if id not in deltas:
deltas[id] = []
for i in range(len(stamps) - 1):
deltas[id].append(stamps[i+1][1] - stamps[i][1])
print(deltas)
要获得增量的平均值,可以使用statistics.mean()
:
from statistics import mean
for id, delta in deltas.items():
print(id, mean(delta))