Как я могу преобразовать свой временной индекс, чтобы сделать season_decompose? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть данные сигнала, которые выглядят так в pandas dataframe - df.

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

511 rows

Значение времени указывается в секундах, а 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.

Iя застрял здесь. Любые предложения будут очень полезны.

1 Ответ

1 голос
/ 11 ноября 2019

Мое предложение:

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 

Дайте мне знать, работает ли он для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...