Python中日期的平均差异

4 投票
5 回答
7099 浏览
提问于 2025-04-11 09:28

我有一系列的日期时间对象,想要计算它们之间的平均时间差。

举个例子,如果输入的是 (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对象)。然后,你可以把这些时间差对象求个平均值,这样就能找到你想要的结果。

撰写回答