Python中日期之间的平均差异

时间:2008-10-07 18:18:48

标签: python algorithm datetime

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

例如,如果输入为(2008-10-01 12:15:00, 2008-10-01 12:25:00, 2008-10-01 12:35:00),那么平均增量将是00:10:00或10分钟。

有关如何使用Python计算此内容的任何建议吗?

5 个答案:

答案 0 :(得分:11)

就算法而言,这很简单。只需找到最大和最小日期时间,取差值,然后除以您查看的日期时间数。

如果你有一个日期时间数组a,你可以这样做:

mx = max(a)
mn = min(a)
avg = (mx-mn)/(len(a)-1)

取回平均差异。

编辑:修复了逐个错误

答案 1 :(得分: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)

这确实会使你的三角洲达到平均值。

答案 2 :(得分:2)

由于你似乎在你的例子中抛出了时间1和3之间的20分钟增量,我会说你应该只对日期时间列表进行排序,将相邻时间之间的增量相加,然后除以n-1

您是否有可以与我们分享的代码,我们可以帮您调试吗?

答案 3 :(得分:1)

您可以从前一个中减去每个连续日期(得到一个timedelta对象,表示天,秒的差异)。然后,您可以对timedelta对象进行平均以找到答案。

答案 4 :(得分:0)

小澄清

from datetime import timedelta

def avg(a):
    numdeltas = len(a) - 1
    sumdeltas = timedelta(seconds=0)

    i = 1
    while i < len(a):
        delta = abs(a[i] - a[i-1])
        try:
            sumdeltas += delta
        except:
            raise
        i += 1
    avg = sumdeltas / numdeltas
    return avg
相关问题