Я работаю с проблемой временных рядов, где я хотел бы сопоставить сходства. Поскольку у временного ряда, в котором я работаю, много пробелов, мне нужно перестроить его так, чтобы он начинался с t0 - tn, а не с фактических временных отметок, чтобы они были полезны для моих сравнений.
Пример:
P1 : (22-De c -2019, 5,0), (24-De c -2019,3,1), (01-01-2020,2,0)
P2: (05- Январь-2020,5,0), (15-02-2020,4,1), (03-03-2020,3,0), (03-05-2020,5,1), (05-06- 2020,2,0)
Выравнивая, чтобы начать с 0:
P1: (t0, 5, 0), (t1,3,1), (t2,2,0)
P2: (t0,5,0), (t1,4,1), (t2,3,0), (t3,5,1), (t4,2,0)
После выравнивания по начиная с 0 до tn серии выглядят немного похожими. Кроме того, они имеют неодинаковую длину и многовариантные последовательности.
В настоящее время я выполняю следующий подход для каждого набора:
first_group_df["timestamp"] = pd.to_datetime(first_group_df["timestamp"]) # Create to datetime
first_group_df.sort_values(by="timestamp", inplace=True) # Sort it in the order of arrival
time_index = [i for i in range(0,len(first_group_df["timestamp"]))] # Index from 0 to number of datapoints
first_group_df["time_index"] = time_index #Add it as a column
first_group_df = first_group_df.set_index("time_index") #Make it index and then drop timestamp
Существуют ли более эффективные подходы для выравнивания временных меток с целочисленным индексом. Я также думаю, что простой reset_index () после сортировки может работать. Я ищу лучшие подходы.
Ниже приведен примерный кадр данных для одного из идентификаторов:
pid val outcome timestamp
0 112 5 1 22-12-2019 10:00:00
5 112 4 0 27-01-2020 11:00:00
10 112 2 1 29-01-2020 11:00:00
15 112 1 1 01-02-2020 10:00:00
20 112 5 1 01-03-2020 10:00:00