Python中日期的平均差异
我有一系列的日期时间对象,想要计算它们之间的平均时间差。
举个例子,如果输入的是 (2008-10-01 12:15:00, 2008-10-01 12:25:00, 2008-10-01 12:35:00)
,那么它们的平均时间差就是正好 00:10:00,也就是10分钟。
有没有什么建议可以用Python来计算这个呢?
5 个回答
3
假设 a
是你的列表
sumdeltas = timedelta(seconds=0)
i = 1
while i < len(a):
sumdeltas += a[i-1] - a[i]
i = i + 1
avg_delta = sumdeltas / (len(a) - 1)
这样做确实可以把你的变化值平均起来。
13
关于算法,这个问题其实很简单。你只需要找到最大的和最小的时间,然后计算它们之间的差值,再把这个差值除以你查看的时间数量。
如果你有一个包含时间的数组 a,你可以这样做:
mx = max(a)
mn = min(a)
avg = (mx-mn)/(len(a)-1)
这样就能得到平均差值了。
编辑:修正了一个小错误。
0
你可以把每个日期减去前一个日期,这样就会得到一个表示天数和秒数差异的时间差对象(timedelta对象)。然后,你可以把这些时间差对象求个平均值,这样就能找到你想要的结果。