Используйте группировщик, чтобы выбрать период времени, используя летнее время - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть набор данных смен, которые идут с 6:00 до 18:00 до 6:00 и т. Д.Я хочу сгруппировать их с частотой 12 часов.

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

time                      Shift
2018-01-01 06:00:00+00:00   1
2018-01-01 07:00:00+00:00   1
2018-01-01 08:00:00+00:00   1
2018-01-01 09:00:00+00:00   1
2018-01-01 10:00:00+00:00   1
2018-01-01 11:00:00+00:00   1
2018-01-01 12:00:00+00:00   1
2018-01-01 13:00:00+00:00   1
2018-01-01 14:00:00+00:00   1
2018-01-01 15:00:00+00:00   1
2018-01-01 16:00:00+00:00   1
2018-01-01 17:00:00+00:00   1
2018-01-01 18:00:00+00:00   4
2018-01-01 19:00:00+00:00   4
2018-01-01 20:00:00+00:00   4
2018-01-01 21:00:00+00:00   4

Для этого я бы использовал следующее:

shift_df.groupby([pd.Grouper(freq='12H',base = 6)]).first()

Это создает следующее:

2018-01-01 06:00:00+00:00   1
2018-01-01 18:00:00+00:00   4
2018-01-02 06:00:00+00:00   2
2018-01-02 18:00:00+00:00   4
2018-01-03 06:00:00+00:00   2
2018-01-03 18:00:00+00:00   4

Это именно то, что я хочу.Однако существует серьезная проблема, когда часы меняются (я работаю по британскому времени).

В конце марта часы меняются на час.Однако период работы остается тем же с 6:00 до 18:00.Это означает, что есть одна смена в начале года, которая отличается на 1 час, и одна в конце года.Однако, потому что я сказал, что нужно брать 12-часовой период, полученные результаты неверны для середины года (на час).

Либо мне нужен 12-часовой период, чтобы учесть смещение времени(поэтому существует один период в году, который составляет 13 часов, а другой - 11 часов), или мне нужно указать, что он разделяет периоды на 6:00 и 18:00, но только в местном времени.

Я пытался использовать время UTC и «Европа / Лондон».Однако, поскольку это «правильно» занимает 12 часов, оно никогда не отражает правильно данные.

Большое спасибо

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