【问题标题】:How to sum find the average of several datetime如何求和找到几个日期时间的平均值
【发布时间】:2020-11-26 03:10:46
【问题描述】:

我想知道如何找到几个日期时间的平均值。 例如,我有以下日期时间列表:

a=[datetime.datetime(2010, 10, 14, 0, 14), datetime.datetime(2010, 10, 14, 0, 15), datetime.datetime(2010, 10, 14, 0, 16), datetime.datetime(2010, 10, 14, 0, 17)]

当我尝试直接将它们相加时,它告诉我有一个

TypeError: unsupported operand type(s) for +: 'int' and 'datetime.datetime'

不确定这样做的正确方法是什么。

如果您能帮助我,非常感谢!

谢谢!

【问题讨论】:

  • 我不确定我是否理解您的问题。一组日期时间的平均值究竟是多少?也许你想要中间时间?还是平均时间?我认为尝试“平均”这些值是不可能的,也不会给你任何有价值的数据。请举例说明。
  • @Lkabo:好问题;鉴于这些日期时间是具有不规则采样频率的时间序列的自变量,并且您想要例如反映采样频率不规则的每小时平均值 - 那么我想这可能是有道理的。在这种情况下,我更喜欢分箱,例如结合均值误差的输出。

标签: python datetime average


【解决方案1】:

从技术上讲,您可以通过将平均时间戳(UNIX 时间)转换为新的日期时间对象来计算日期时间的“平均值”:

import datetime

l = [datetime.datetime(2010, 10, 14, 0, 14), 
     datetime.datetime(2010, 10, 14, 0, 15),
     datetime.datetime(2010, 10, 14, 0, 16), 
     datetime.datetime(2010, 10, 14, 0, 17)]

middle = datetime.datetime.fromtimestamp(sum(d.timestamp() for d in l)/len(l))

# middle
# datetime.datetime(2010, 10, 14, 0, 15, 30)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    相关资源
    最近更新 更多