熊猫DatetimeIndex +季节性分解=缺少频率

时间:2019-05-21 21:01:45

标签: python pandas

我正在尝试在熊猫数据框上执行seasonal_decompose,但是遇到了我无法逾越的错误。我的时间序列数据包含按时间顺序排列的时间间隔,考虑到我的数据是股票价格,这是明智的选择(在市场交易时间后会出现这些时间间隔,以及不同的月份长度等)。数据本身可以被认为是连续的,但是熊猫似乎不想推断任何频率。

我的所有时间范围数据(1m,5m,15m ... 1D,1M)均已正确填充,但频率设置为“无”。我的算法在实例化时创建一个空的数据帧,并在数据在算法运行时过程中通过loc向其添加值。因此,也许这就是为什么频率为“无”的原因(因为在生成所有数据后通常会使用熊猫)。

我尝试使用以下方法在seasonal_decompose之前明确设置频率:

data.index.freq = data.index.freq or to_offset(timeframe.Timespan).freqstr

其中timeframe.Timespan是python timedelta对象。结果字符串是正确的(“ D”是因为时间跨度是每天),但是会发生以下错误:

  

ValueError:从传递的值推断出的频率无与传递的频率D不符

所以我不能在索引上明确设置频率吗?我该如何解决?无论如何,如何从这些字符串中得出频率整数(传递给seasonal_decompose)?我也不允许更改data.index.inferred_freq的值,所以这不是一个选择。

1 个答案:

答案 0 :(得分:0)

您需要的声音是DataFrame.asfreq

data = data.asfreq(data.index.freq or to_offset(timeframe.Timespan).freqstr)