В настоящее время я работаю с фреймом данных, состоящим из нескольких миллионов строк и 8 столбцов, и пытаюсь избежать использования циклов при выполнении преобразований для этого df.
Проблема заключается в следующем.
Пример формата оригинального кадра данных Pandas показан ниже.Здесь «index» - это дата и время, «Room» - категориальное, а остальные столбцы - числа с плавающей запятой.
Оригинал df:
![original df](https://i.stack.imgur.com/x9ST4.png)
Thisданные датчика в одном кадре данных, где имеется несколько выборок на значение индекса даты / времени, поскольку имеется несколько комнат.Целевой столбец должен иметь следующий формат.
![target shape](https://i.stack.imgur.com/EqJFM.png)
Обратите внимание, что я пропустил колонки для «кухни и гостиной».Вы, вероятно, получите цель.Один столбец на переменную, на ярлык комнаты.
Теперь, чтобы сделать вещи более сложными.На каждом временном шаге видны не все возможные категории номеров.Например, в 20:05 «кухня» может отсутствовать в примере df.
Можно было бы увидеть это преобразование (я полагаю) в виде нескольких фреймов данных (по одному на каждую комнату), объединенных в один и тот же индекс даты и времени, где имя каждого столбца меняется на sensor__room_category
.Может ли это преобразование быть выполнено без использования циклов и итераций по всему df?Если да, то как?
Другое дело, на самом деле этот df состоит из приведенных выше данных из нескольких домов.Таким образом, есть столбец с метками «house_1, house_2, house_3, ...».Таким образом, должна быть преобразована только дата, например, из house_1, затем house_2 и т. Д. Таким образом, данные по каждому дому остаются разделенными.
Я понял, что это довольно специфический вопрос.Но мне интересно, есть ли какая-нибудь панда или даже магия нп, которая делает легко выполнимой
TLDR: данные от датчиков в разных комнатах необходимо преобразовать, поэтому для каждого значения указывается одна временная метка sensor__room_category
.Как это сделать без массивных петель?