使用Python推断连续时间戳之间的差异

时间:2019-04-03 01:18:02

标签: python plot graph average

我有一个从日志文件中解析出来的数据集(相当大),如下所示:

{ 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的平均增量的最有效方法是什么?

1 个答案:

答案 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))