首页 > 解决方案 > 如何将我的时间索引转换为季节性分解?

问题描述

我有一个在 pandas dataframe - df 中看起来像这样的信号数据。

time  val
0     152
1     152
2     153
.     .
.     .

511 rows

'time' 值以秒为单位,'val' 表示幅值。

df.index = Int64Index([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
        ...
        501, 502, 503, 504, 505, 506, 507, 508, 509, 510],
       dtype='int64', name='time', length=511)

我的最终目标是对此时间序列数据执行季节性分解,使用

sm.tsa.seasonal_decompose 

statsmodels.api

当我以秒为单位重新采样“时间”时,这会很好。

但是,这需要“时间”数据为 DatetimeIndex、TimedeltaIndex 或 PeriodIndex,而它位于 int64 中。

我被困在这里。任何建议都会非常有帮助。

标签: pythonpandasstatsmodels

解决方案


我的建议是:

secs = []
for i in range(len(df['val'])):
     secs.append(np.timedelta64(i, 's'))

df['time'] = secs

你最终会得到这个数据框:

     val     time
0    152 00:00:00
1    153 00:00:01
2    154 00:00:02
3    155 00:00:03
4    156 00:00:04
..   ...      ...
143  295 00:02:23 

请让我知道这对你有没有用。


推荐阅读