Pandas: функция для заполнения кадра данных регулярного временного интервала из нерегулярных временных отметок - PullRequest
0 голосов
/ 29 февраля 2020

Рассмотрим пример гаража с датчиком над каждым парковочным местом. Датчик записывает с нерегулярными временными интервалами метку времени конкретного номера автомобильного номера, если он припаркован в этом месте или нет.

    timestamp            license_id  db_id  parked
0   2019-05-30 14:30:00  1001        1      True
1   2019-05-30 15:35:00  1001        1      False
2   2019-05-30 12:30:00  1002        1      True
3   2019-07-31 14:30:00  1002        2      True
4   2019-05-30 14:30:00  1004        1      True
5   2019-07-30 14:30:00  1005        2      True
6   2019-07-30 19:30:00  1006        2      False

, где timestamp - метка времени записи датчика, license_id - это id номерного знака, db_id - это идентификатор базы данных, в которую записываются данные, а `` parked "- логическое значение, где True указывает, что автомобиль находился в этом месте. Как только база данных заполнена, другая создается для записи новых данных, и в результате этого процесса некоторые наблюдения могут записываться неправильно.

Фрейм данных db_id выглядит следующим образом:

    db_id id    created_ts                  stopped_ts
0   1           2018-08-03 22:43:07.392988  2019-06-03 22:46:50.279
1   2           2019-06-03 22:46:50.279     2020-01-08 01:02:16.079

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

Я думал о том, чтобы создать новый кадр данных с регулярным ежедневным индексом и где столбцы представляют `` license_id "и затем заполните его логическим значением. Однако есть несколько ситуаций, которые усложняют ситуацию, когда создается новая база данных, а старая останавливается. Я суммировал различные сценарии ios и приведенные ниже правила:

current_recording current_db  next_recording  next_db  rule        
parked            1           parked          1        Assume car was parked from current timestamp until next timestamp
parked            1           not_parked      1        Normal case
not_parked        1           parked          1        Normal case
not_parked        1           not_parked      1        Ignore next recording
parked            1           parked          2        Assume car was parked from current timestamp until stopped time of db_id = 1 OR next recording timestamp, whichever is smaller
parked            1           not_parked      2        Assume car was parked from current  timestamp until stopped time of db_id = 1. Ignore next recording.
not_parked        1           parked          2        Normal case
not_parked        1           not_parked      2        Ignore next recording

Я не уверен, какой метод (groupby, reshape, melt, et c ...) будет лучшим для такого форварда. заполнение условиями.

Спасибо за помощь.

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