0

我创建了一个 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 却没有。但我可能会在这里遗漏一些东西。

知道如何通过索引重新采样吗?或者也许是一种解决方法 - 我想要做的只是按某个频率(比如 1 分钟)进行采样,但开始/结束时间不一定在原始时间序列中有数据点(我试图有一堆从上午 8 点到下午 4 点采样的时间序列,但有些只有上午 9:30 的值,有些是上午 10 点等)

4

2 回答 2

1

AFAIK 你不能传入一个 DatetimeIndex 来重新采样。作为一种解决方法,只需按频率别名('1Min')重新采样,然后重新索引到您生成的索引?

我开始了一个github 问题,可能会考虑添加额外的参数来重新采样。随时在那里留下更多反馈。

于 2012-10-25T13:50:27.953 回答
0

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

韦斯回答说他计划resample最终像这样扩展。

于 2012-11-20T21:15:59.483 回答