重新采样到DatetimeIndex会引发错误

时间:2012-10-25 08:17:14

标签: python time-series pandas

我创建了一个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点等。)

2 个答案:

答案 0 :(得分:1)

AFAIK您无法传递DatetimeIndex以重新取样。作为一种解决方法,只需通过freq别名('1Min')重新采样,然后重新索引到生成的索引?

我开始使用github issue来考虑添加其他参数以重新取样。随意在那里留下更多反馈。

答案 1 :(得分:0)

我前几天发布了一个类似的问题:Date ranges in Pandas

Wes回答说他计划最终延长resample