python - 如何将我的时间索引转换为季节性分解?
问题描述
我有一个在 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 中。
我被困在这里。任何建议都会非常有帮助。
解决方案
我的建议是:
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
请让我知道这对你有没有用。
推荐阅读
- ruby-on-rails - 从 docker 容器共享 unix 套接字到 ubuntu 主机
- python - 列表中存储的先前数据随着其他数据的添加而更改
- android - RxJava/Kotlin Observable 方法调用链 - 如何终止?
- java - guava ThreadPool+CountDownLatch 遇到 IllegalMonitorStateException
- php - Laravel 模型关系显示帖子中的管理员详细信息
- python - 为什么我的线程在启动之前执行目标函数?
- c# - 将表单传递给另一个类并提取控件和属性
- python-3.x - 全新安装 ubuntu 上的 Pytorch 找不到我的 GPU
- java - Kotlin Class<*> 是否等于 Java/Groovy 类
- google-sheets - 谷歌电子表格中同一日期的总和值