時系列データのセクションの平均 (30 分間隔で 24 時間以上) を取得しようとしています。
現在私は持っています:
# 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()
使ってみましasfreq(datetools.BDay())
たが、30分ごとのデータが削除されます。独自の 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)