2012-12-01 2 views
0

나는 파이썬에서 datetime 오브젝트 목록을 가지고 있으며 시간 단위로 집계하려고합니다. 예를 들어 나는파이썬에서 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

키가 시간이고 값이 datetime 개체의 목록 인 사전을 사용하면 이러한 종류의 데이터를 효율적으로 저장할 수 있습니다. 예 : (안된) :

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

이 당신을 줄 것이다 :

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

를 참조하십시오, 당신은 거기에 각 시간의 얼마나 많은 셀 수 :

Counter({0: 2, 1: 1}) 
관련 문제