2012-05-22 4 views
0

시계열 데이터 섹션의 평균 (30 분 간격으로 24 시간 이상)을 얻으려고합니다. 내가 asfreq(datetools.BDay())을 사용 해봤주중 30 분 평균 데이터 만

# Data of interest 
START = datetime(2010,2,1,0,0,0) 
END = datetime(2010,2,8,23,59,59) 

# Function to group by time of day 
def minutes(date): 
    time = date.strftime("%H:%M:%S") 
    dt = datetime.strptime("2009-04-01 " + time, "%Y-%m-%d %H:%M:%S") 
    return dt 

# Truncate data to desired section 
telford = store.get_data("spd_mw").TELR.truncate(START,END) 

# Group and average 
telford.groupby(minutes).mean() 

하지만 반 시간마다 데이터를 제거 :

는 현재 내가있다. 내 자신의 DateOffset을 작성하는 경우입니까?

분 단위로 위의 작업을 수행하는 청소기가 있습니까?

옆모습 : 잘라내기를 데이터의 기존 색인으로해야합니까? 나는 (위에 다른 데이터 세트) 다음과 같은 오류를 받고 있어요 :

Traceback (most recent call last): 
    File "power-weather.py", line 21, in <module> 
    egph_temp = store.get_data("weather_EGPH").TemperatureC.truncate(START,END) 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/generic.py", line 702, in truncate 
    result = self.ix[before:after] 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/indexing.py", line 35, in __getitem__ 
    return self._getitem_axis(key, axis=0) 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/indexing.py", line 167, in _getitem_axis 
    return self._get_slice_axis(key, axis=axis) 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/indexing.py", line 372, in _get_slice_axis 
    i, j = labels.slice_locs(start, stop) 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/index.py", line 842, in slice_locs 
    beg_slice = self.get_loc(start) 
    File "/usr/local/lib/python2.6/dist-packages/pandas-0.7.3-py2.6-linux-x86_64.egg/pandas/core/index.py", line 523, in get_loc 
    return self._engine.get_loc(key) 
    File "engines.pyx", line 101, in pandas._engines.DictIndexEngine.get_loc (pandas/src/engines.c:2498) 
    File "engines.pyx", line 108, in pandas._engines.DictIndexEngine.get_loc (pandas/src/engines.c:2460) 
KeyError: datetime.datetime(2010, 2, 1, 0, 0) 
+0

, 당신은 당신이 무엇인지 우리에게 말했다 경우가 좋았을 것이다 성취하려고 노력한다! –

+0

사과. 결정된. –

답변

1

가 해결 : 첫 번째 문장으로

def weekdays(date): 
    if 0 < int(datetime.strftime(date, "%w")) < 6: 
     return True 
    return False 

def weekends(date): 
    if int(datetime.strftime(date, "%w")) == (0 or 6): 
     return True 
    return False 

telford = telford.select(weekdays) 
관련 문제