我在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]
。
答案 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()]
答案 1 :(得分:1)
假设您有一个日期时间对象列表,您可以计算每小时的数量:
from collections import Counter
hours = [t.hour for t in ts]
Counter(hours)
这会给你:
Counter({0: 2, 1: 1})