2012-12-01 33 views
0

我有一个python中的datetime对象列表,并希望按小时来汇总它们。例如,如果我有在python中汇总日期时间对象到小时

[03/01/2012 00:12:12, 
03/01/2012 00:55:12, 
03/01/2012 01:12:12, 
...] 

我想有datetime对象的列表每隔一小时用datetime对象我有属于这个桶的数量的计数沿DateTime对象。对于我上面的例子,我想要在一个列表中输出 [03/01/2012 00:00:00, 03/01/2012 01:00:00],并且在另一个列表中输入一个计数:[2,1]

回答

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

0

假设你有datetime对象的列表,你可以指望有多少每个小时有:

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

这会给你:

Counter({0: 2, 1: 1}) 
相关问题