#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(‘категория’)