Я должен выяснить, сколько раз велосипед был на превышении скорости, и в каждом случае как долго (для простоты, сколько км)
df = pd.DataFrame({'bike':['b1']*15, 'km':list(range(1,16)), 'speed':[20,30,38,33,28,39,26,33,35,46,53,27,37,42,20]})
>>> df
bike km speed
0 b1 1 20
1 b1 2 30
2 b1 3 38
3 b1 4 33
4 b1 5 28
5 b1 6 39
6 b1 7 26
7 b1 8 33
8 b1 9 35
9 b1 10 46
10 b1 11 53
11 b1 12 27
12 b1 13 37
13 b1 14 42
14 b1 15 20
#Expected result is
bike last_OS_loc for_how_long_on_OS
b1 4 2km
b1 11 5km
b1 15 1km
Теперь логика -
должен пометить скорость> = 30 как Overspeed_Flag
Если скорость остается более 30 на 1 или 1 + км, то это продолжение рассматривается как сеанс с превышением скорости(например: когда b1 находился в диапазоне от 2 до 4 км, 6–11 км, 13–14 км, MARK, это был не сеанс с превышением скорости, когда b1 был на 6 км, так как это было только для этого ряда, продолжения на> 30 не обнаружено).
затем измерьте для сеанса, как долго / на сколько километров он остается на пределе превышения скорости.См. Таблицу ожидаемых результатов.
также выяснение для сеанса превышения скорости, какой была последняя отметка км.
Просьба предложить, как мне этого добиться,И дайте мне знать, если что-то не понятно в этом вопросе.
P: S: я тоже пытаюсь, но это немного сложно для меня (Довольно запутался, как пометить, если это продолжение OS_flagили один экземпляр ОС.), Вернется в случае успеха в этом.Спасибо в ADV.