python - 日期时间列表的平均时间

标签 python datetime pandas average

寻找时间平均问题的最快解决方案。

我有一个日期时间对象列表。需要求时间的平均值(不包括年月日)。 这是我到目前为止得到的:

import datetime as dtm
def avg_time(times):
    avg = 0
    for elem in times:
        avg += elem.second + 60*elem.minute + 3600*elem.hour
    avg /= len(times)
    rez = str(avg/3600) + ' ' + str((avg%3600)/60) + ' ' + str(avg%60)
    return dtm.datetime.strptime(rez, "%H %M %S")

最佳答案

这是一个简短而有趣的解决方案(虽然可能不是最快的)。它获取日期列表中的每个日期与某个任意引用日期之间的差异(返回 datetime.timedelta),然后对这些差异求和并取平均值。然后它添加回原始引用日期。

import datetime
def avg(dates):
  any_reference_date = datetime.datetime(1900, 1, 1)
  return any_reference_date + sum([date - any_reference_date for date in dates], datetime.timedelta()) / len(dates)

关于python - 日期时间列表的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681703/

相关文章:

python - 使用Python操作Excel电子表格

c# - C#.NET 中的 Pandas Dataframe 或类似工具

python - Pandas 中按组标记序列

python - 没有日期时间索引的 pandas dataframe 每天重新采样

python - pygame 跳过更新屏幕

python - 如何从 pandas DataFrame 的子集进行采样?

python - 将包添加到 AWS lambda 中的现有层

javascript - 将 DATETIME 字符串转换为 Javascript 或 jQuery 中的时间和日期

sql - T-SQL : Convert datatime2 to datetime for all columns of type datetime2

c# - 如何在下拉列表中默认显示当前日期?