我创建了一个DatetimeIndex,我想用该索引重新采样数据。当我这样做时,我得到一个例外:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.1-py2.7-linux-i686.egg/pandas/core/generic.py", line 188, in resample
limit=limit, base=base)
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.1-py2.7-linux-i686.egg/pandas/tseries/resample.py", line 41, in __init__
self.freq = to_offset(freq)
File "/usr/local/lib/python2.7/dist-packages/pandas-0.8.1-py2.7-linux-i686.egg/pandas/tseries/frequencies.py", line 392, in to_offset
raise ValueError("Could not evaluate %s" % freqstr)
ValueError: Could not evaluate <class 'pandas.tseries.index.DatetimeIndex'>
[2012-03-02 09:00:00, ..., 2012-03-02 15:00:00]
Length: 73, Freq: 5T, Timezone: None
似乎TimeGrouper.resample应该处理DatetimeIndex,但TimeGrouper init中对to_offset的调用不会。但我可能会在这里遗漏一些东西。
知道如何通过索引进行重新采样吗? 或者也许是一种解决方法 - 我尝试做的只是以某种频率(例如,1Min)进行采样,但是开始/结束时间不一定是原始时间序列中的数据点(我试图有一堆时间序列从早上8点到下午4点采样,但有些只有上午9:30的值,有些从早上10点等。)
答案 0 :(得分:1)
AFAIK您无法传递DatetimeIndex以重新取样。作为一种解决方法,只需通过freq别名('1Min')重新采样,然后重新索引到生成的索引?
我开始使用github issue来考虑添加其他参数以重新取样。随意在那里留下更多反馈。
答案 1 :(得分:0)
我前几天发布了一个类似的问题:Date ranges in Pandas
Wes回答说他计划最终延长resample
。