Как поместить значения временных рядов в виде столбцов в Pandas

#python #pandas #datetime #time-series

#python #pandas #дата и время #временные ряды

Вопрос:

У меня простая проблема, но я не уверен, как заставить ее работать.

У меня есть набор данных, в котором записываются температуры устройств:

 Device_ID Temperature Label
1           50          0
1           40          0
2           34          0
1           78          0
2           66          1
3           88          0
1           12          0
2           33          0
3           91          0
  

Устройства могут передавать температуру в любое время. Приведенный выше набор данных уже отсортирован по времени.

Что я хочу сделать?

Классифицируйте устройства на основе их температурного режима.

У меня уже есть метки для набора данных, метки указывают, вышли ли устройства из строя после измерения (1 означает, что после этого измерения устройство вышло из строя, 0 означает, что все в порядке).

Если устройство выходит из строя, его метка теперь всегда будет плохой -> т. Е. мне понадобятся значения временных рядов только до этого момента. Теперь устройство помечено как неисправное, и будущие измерения не имеют значения.

Итак, я хочу построить набор данных классификации как:

 Device_ID  T1  T2 T3 T4 ... Tn Label

1          50 40 78 ...          0
2          34 66 .....           1 (33 measurement now does not matter)
  

Итак, мой вопрос в том, как мне преобразовать эти значения временных рядов в строках в столбцы в Pandas? Как эффективно выполнить эту задачу?

Я могу использовать Pivot, но Pivot работает только для категориальных переменных.

Любая помощь приветствуется.

Комментарии:

1. Как вы определяете общую метку для каждого устройства?

2. @coldspeed У меня есть два варианта: 1. если устройство выходит из строя, его метка теперь всегда неисправна. 2. если после сбоя устройство восстановится (т. Е. метка снова станет 0), тогда я могу создать другую точку данных в моем конечном наборе данных для того же устройства, но теперь с другой меткой. Я могу работать с любым из двух вариантов. Если я получу решение для 1, я уверен, что смогу выполнить второе самостоятельно.

3. @coldspeed рабочим решением было бы: если устройство выходит из строя, его метка теперь всегда плохая -> т. Е. мне понадобятся только значения временных рядов до этого момента. Теперь устройство помечено как неисправное, и будущие измерения не имеют значения.

4. сделайте устройство категориальным, или объектным типом .. dataset.device = detaset.devise.astype(‘категория’)