Операции с меткой времени - PullRequest
1 голос
/ 11 февраля 2020

У меня есть датафрейм со столбцом даты и времени. Я хочу взять разницу времени двух последовательных временных меток и создать новый столбец как поездку. Если разница больше 5 часов, следует добавить 1, иначе она должна остаться прежней. Для 1-й отметки времени значение отключения можно принять равным 1.

Вот так выглядит фрейм данных:

+---+-----------------------------------+-------------------------+
|   |           Comment                 |       Timestamp         |
+---+-----------------------------------+-------------------------+
| 1 |             -----                 |   25-05-2019  02:48:00  | 
| 2 |             -----                 |   25-05-2019  03:20:00  |  
| 3 |             -----                 |   25-05-2019  08:23:00  |  
| 4 |             -----                 |   25-05-2019  09:48:00  |  
| 5 |             -----                 |   25-05-2019  22:32:00  |           
+---+-----------------------------------+-------------------------+

Желаемый результат:

+---+-----------------------------------+-------------------------+---------+
|   |           Comment                 |       Timestamp         |  Trip   |
+---+-----------------------------------+-------------------------+---------+
| 1 |             -----                 |   25-05-2019  02:48:00  |   1     |
| 2 |             -----                 |   25-05-2019  03:20:00  |   1     |
| 3 |             -----                 |   25-05-2019  08:23:00  |   2     |
| 4 |             -----                 |   25-05-2019  09:48:00  |   2     |
| 5 |             -----                 |   25-05-2019  22:32:00  |   3     |  
+---+-----------------------------------+-------------------------+---------+

Как мы можем сделать это?

1 Ответ

2 голосов
/ 11 февраля 2020

Вы можете использовать .diff() для вычисления разностей во времени, сравнить их с 5:00:00 и cumsum():

df['Trip'] = df.Timestamp.diff().gt('5:00:00').cumsum().add(1)

Вывод:

            Timestamp  Trip
0 2019-05-25 02:48:00     1
1 2019-05-25 03:20:00     1
2 2019-05-25 08:23:00     2
3 2019-05-25 09:48:00     2
4 2019-05-25 22:32:00     3
...