2012-05-10 2 views
1

I 다음과 같은 데이터 구조를 가지고모든 주파수에 간격 시간 값 변환 시계열

2011-01-01 00:00, 2011-01-20 00:00, 200 # days-range 
2011-01-20 00:00, 2011-03-08 00:00, 1288 # days-range 
2011-04-11 00:00, 2012-01-08 00:00, 5987 # days-range 

2012-02-01 00:00, 2012-02-01 01:00, 7  # hourly-range 
2012-02-01 02:00, 2012-02-01 02:30, 3  # hourly-range 

시작일, 종료일와 간격 (날짜 사이 저장된 일부 메트릭이다). 월별/일별/시간별/반 시간당 시간 시리즈 :

는 추가 데이터 분석을 위해 내가 필요한 주파수 시계열을 생성해야합니다. 예를 들어, 시간별 데이터 :

2011-01-01 00:00, 2 
2011-01-01 01:00, 6 
2011-01-01 02:00, 5 
... 

는 데이터 변환의이 종류를 구현하는 데 도움이 될 수있는 파이썬 lib 디렉토리가 있습니까?

+0

예,'pandas'. 당신은 그것을 태그했습니다. 그러나 두 번째 열의 값으로 무엇을하고 있습니까? – eumiro

+0

http : //pleac.sourceforge.net/pleac_python/datesandtimes.html에서 살펴본 다음 붙어 있다면 몇 가지 코드로 다시 돌아 오십시오. –

+1

@eumiro 네, 팬더는 더 자세한 분석을 위해 훌륭하지만, 간격 데이터에서 빈도 시계열을 생성해야합니다. 예 : 1 월 1 일부터 1 월 10 일까지 200km를 추적했습니다. 하루당 200/10 = 20km의 값을 만들어야합니다. 물론 이것은 간단한 경우입니다. –

답변

2
import pandas as pd 

def stretch(start_date, end_date, value, freq): 
    freq_dict = {'d': pd.datetools.day, 
       'h': pd.datetools.Hour(1)} 
    dr = pd.DateRange(start_date, end_date, offset=freq_dict[freq]) 
    return pd.TimeSeries(value/dr.size, index=dr) 


print stretch('2011-01-01 00:00', '2011-01-20 00:00', 200, 'd') 

인쇄

2011-01-01 10 
2011-01-02 10 
2011-01-03 10 
2011-01-04 10 
2011-01-05 10 
2011-01-06 10 
2011-01-07 10 
2011-01-08 10 
2011-01-09 10 
2011-01-10 10 
2011-01-11 10 
2011-01-12 10 
2011-01-13 10 
2011-01-14 10 
2011-01-15 10 
2011-01-16 10 
2011-01-17 10 
2011-01-18 10 
2011-01-19 10 
2011-01-20 10 
+0

감사합니다, @eumiro, 매우 도움이됩니다! 아마도 판다는 또 다른 경우를 해결할 수 있습니다. 나는 1 월 1 일부터 10 일까지 200km를 추적 할 수 있으며 2 월 20 일에는 600km를 추적 할 수 있습니다. 1 월과 2 월에는 월별 빈도가 필요합니까? –

+0

매일 개별적으로 TimeSeries를 만들고, 이들을 '결합하여'월별 빈도로 '그룹화'하십시오. – eumiro

+1

판다의 재 샘플링 기능은 곧 출시 될 0.8.0 버전에서 크게 개선 될 것입니다. –