将python中的datetime对象聚合到小时

时间:2012-12-01 19:37:40

标签: python datetime

我在python中有一个datetime对象列表,想要按小时聚合它们。例如,如果我有

的日期时间对象
[03/01/2012 00:12:12,
 03/01/2012 00:55:12,
 03/01/2012 01:12:12,
 ...]

我希望每小时都有一个日期时间对象列表,以及落入该存储桶的日期时间对象数量。对于我上面的例子,我想要输出 一个列表中的[03/01/2012 00:00:00, 03/01/2012 01:00:00]和另一个列表中的条目计数:[2,1]

2 个答案:

答案 0 :(得分:2)

您可以使用字典来有效地存储这种数据,其中键是小时,值是日期时间对象的列表。例如(另):

l = [datetime.datetime.now(), datetime.datetime.now()] #...etc.
hour_quantization = {}
for dt in l:
    if dt.hour not in hour_quantization:
        hour_quantization[dt.hour] = [dt]
    else:
        hour_quantization[dt.hour].append(dt)

counts = [len(hour_quantization[hour]) for hour in hour_quantization.keys()]

请参阅doc entry on datetime

答案 1 :(得分:1)

假设您有一个日期时间对象列表,您可以计算每小时的数量:

from collections import Counter
hours = [t.hour for t in ts]
Counter(hours)

这会给你:

Counter({0: 2, 1: 1})