Разделить электронную таблицу на части, основанные на последовательности чисел - PullRequest
2 голосов
/ 08 марта 2020

У меня есть набор данных в электронных таблицах, который представляет собой данные о каждой поездке поезда в нью-йоркском метро.

╔═══════╦══════╦══════════════╦════════════════╦═════════╦═══════════════╦══════════════════╗
║ trip  ║  id  ║ arrival_time ║ departure_time ║ stop_id ║ stop_sequence ║     Station      ║
╠═══════╬══════╬══════════════╬════════════════╬═════════╬═══════════════╬══════════════════╣
║ GO505 ║ 20_2 ║ 0:06:00      ║ 0:06:00        ║     237 ║             1 ║ Penn Station     ║
║ GO505 ║ 20_2 ║ 0:18:00      ║ 0:18:00        ║     214 ║             2 ║ Woodside         ║
║ GO505 ║ 20_2 ║ 0:23:00      ║ 0:23:00        ║      55 ║             3 ║ Forest Hills     ║
║ GO505 ║ 20_2 ║ 0:25:00      ║ 0:25:00        ║     107 ║             4 ║ Kew Gardens      ║
║ GO505 ║ 20_2 ║ 0:29:00      ║ 0:32:00        ║     102 ║             5 ║ Jamaica          ║
║ GO505 ║ 20_2 ║ 0:47:00      ║ 0:47:00        ║     183 ║             6 ║ Rockville Centre ║
║ GO505 ║ 20_2 ║ 0:50:00      ║ 0:50:00        ║     225 ║             7 ║ Baldwin          ║
║ GO505 ║ 20_2 ║ 0:53:00      ║ 0:53:00        ║      64 ║             8 ║ Freeport         ║
║ GO505 ║ 20_2 ║ 0:56:00      ║ 0:56:00        ║     226 ║             9 ║ Merrick          ║
║ GO505 ║ 20_2 ║ 0:59:00      ║ 0:59:00        ║      16 ║            10 ║ Bellmore         ║
║ GO505 ║ 20_2 ║ 1:02:00      ║ 1:02:00        ║     215 ║            11 ║ Wantagh          ║
║ GO505 ║ 20_2 ║ 1:05:00      ║ 1:05:00        ║     187 ║            12 ║ Seaford          ║
║ GO505 ║ 20_2 ║ 1:07:00      ║ 1:07:00        ║     136 ║            13 ║ Massapequa       ║
║ GO505 ║ 20_2 ║ 1:09:00      ║ 1:09:00        ║     135 ║            14 ║ Massapequa Park  ║
║ GO505 ║ 20_2 ║ 1:12:00      ║ 1:12:00        ║       8 ║            15 ║ Amityville       ║
║ GO505 ║ 20_2 ║ 1:15:00      ║ 1:15:00        ║      38 ║            16 ║ Copiague         ║
║ GO505 ║ 20_2 ║ 1:18:00      ║ 1:18:00        ║     117 ║            17 ║ Lindenhurst      ║
║ GO505 ║ 20_2 ║ 1:23:00      ║ 1:23:00        ║      27 ║            18 ║ Babylon          ║
║ GO505 ║ 20_3 ║ 1:00:00      ║ 1:00:00        ║      27 ║             1 ║ Babylon          ║
║ GO505 ║ 20_3 ║ 1:05:00      ║ 1:05:00        ║     117 ║             2 ║ Lindenhurst      ║
║ GO505 ║ 20_3 ║ 1:08:00      ║ 1:08:00        ║      38 ║             3 ║ Copiague         ║
║ GO505 ║ 20_3 ║ 1:10:00      ║ 1:10:00        ║       8 ║             4 ║ Amityville       ║
║ GO505 ║ 20_3 ║ 1:13:00      ║ 1:13:00        ║     135 ║             5 ║ Massapequa Park  ║
╚═══════╩══════╩══════════════╩════════════════╩═════════╩═══════════════╩══════════════════╝

Мне нужно как-то разбить его на части на основе последовательностей в stop_sequence. Каждая последовательность от 1 до n (здесь 18) означает 1 поездку на поезде. Так, например, мне нужно посчитать время каждой поездки (то есть время вылета каждой последней последовательности stop_sequence - время прибытия первой остановки stop_sequence) для каждой поездки (их около 5000). Как я могу как-то это сделать? sh Я мог бы разбить столбец в python с pandas на несколько рейсов и рассчитать время для каждой поездки. Но я не знаю, как это сделать.

Мой ожидаемый результат -

идентификатор поездки uration Продолжительность поездки

GO505 20_2 x: xx: xx

GO505 20_3 ║ x: xx: xx

Я новичок в науке о данных. Пожалуйста, помогите!

1 Ответ

2 голосов
/ 09 марта 2020

Диапазон A: G -> данные о каждой поездке поезда

Ячейка I1: =QUERY({ArrayFormula(A:A&" "&B:B),ArrayFormula(VALUE(C:D))},"select Col1,max(Col3)-min(Col2) where Col1!=' ' group by Col1 label max(Col3)-min(Col2) 'Duration of the trip' format max(Col3)-min(Col2) 'hh:mm:ss'")

enter image description here

Ссылки на функции

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