Python 中日期之间的平均差异



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

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

关于如何使用 Python 计算它的任何建议?

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

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

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

以取回平均差额。

编辑:修复了关闭一个错误

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)

这确实会将您的增量平均在一起。

由于您在示例中似乎抛出了 20 和 3 之间的 3 分钟增量,因此我认为您应该对日期时间列表进行排序,将相邻时间之间的增量相加,然后除以 n-1。

您是否有任何代码可以与我们共享,以便我们帮助您调试它?

您可以从前一个日期中减去每个连续的日期(生成一个 timedelta 对象,该对象表示以天、秒为单位的差异)。 然后,您可以对时间增量对象求平均值以找到答案。

小澄清

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

相关内容

  • 没有找到相关文章

最新更新