Я использую данные MTA и панды, и я хочу рассчитать разницу между входами и выходами между каждым отчетным временем для каждого дня. Каждый отчетный период должен начинаться с 0 в полночь и отсчитываться оттуда.
Я вычислил разницу между минимальным и максимальным значениями в день, но я не смог рассчитать разницу между часами.
Мой фрейм данных выглядит так:
C/A UNIT SCP STATION LINENAME DIVISION
A002 R051 02-00-00 59 ST NQR456W BMT
A002 R051 02-00-00 59 ST NQR456W BMT
DATE TIME ENTRIES EXITS DATETIME
06/29/2019 00:00:00 7116734 2410183 06/29/2019 00:00:00
06/29/2019 08:00:00 7116770 2410218 06/29/2019 08:00:00
Это нормально для расчета входов / выходов, но это не достаточно детально, и мне не нравится, как я должен группировать по дате:
sort_on_turnstiles['exit_increments'] = df.groupby(['c/a','unit','scp','station','datetime'])['exits'].apply(lambda x: x.max() - x.min())
В идеале я бы не хотел группировать по дате.
Я хочу иметь определенный столбец "entry_increments" / "exit_increments" по отчетному часу и группировке турникетов ['c / a', 'unit', 'scp', 'station']. Результирующий кадр данных в идеале должен выглядеть примерно так:
C/A UNIT SCP STATION LINENAME DIVISION
A002 R051 02-00-00 59 ST NQR456W BMT
DATE TIME ENTRIES EXITS DATETIME
06/29/2019 00:00:00 7116734 2410183 06/29/2019 00:00:00
06/29/2019 08:00:00 7116770 2410218 06/29/2019 08:00:00
ENTRY_INCS EXIT_INCS
0 0
36 35