У меня есть некоторые данные, в которых мне нужно подсчитать количество километров, пройденных транспортным средством, в то время как другое условие - Истина.
Возможно, я задаю неправильный вопрос, и может быть очевидный способсделать это, но я не смог найти это, к сожалению.и здесь есть два типа вопросов, надеюсь, что это нормально, поскольку они связаны между собой.
Итак, я хочу добавить серию, которая заполняет строки последним известным состоянием.Поэтому, если транспортное средство 1 открывает левое переднее окно, я бы затем установил серию в True, пока окно снова не закроется.Тогда я бы как-то (это я тоже не понял) вычислил количество километров, которое машина 1 проехала, когда было открыто левое переднее окно.
И тогда я бы сделал то же самое для правого окна и для всех транспортных средств..
Ниже приведен пример данных, и
import pandas as pd
matrix = [(1, 'Front Left Window Open', True),
(2, 'Engine Started', True),
(3, 'Engine Started', True),
(4, 'Front Left Window Open', True),
(1, 'Engine Started', True),
(2, 'Engine Started', True),
(3, 'Engine Started', True),
(1, 'Odometer', 254),
(1, 'Engine Started', True),
(2, 'Engine Started', True),
(3, 'Engine Started', True),
(1, 'Front Right Window Open', True),
(1, 'Engine Started', True),
(1, 'Odometer', 257),
(3, 'Engine Started', True),
(1, 'Odometer', 259),
(1, 'Front Left Window Open', False),
(1, 'Engine Started', True),
(1, 'Odometer', 261),
(3, 'Engine Started', True),
(1, 'Front Left Window Open', True),
(1, 'Odometer', 265),
]
# Create a DataFrame object
dfObj = pd.DataFrame(matrix, columns=['Vehicle', 'Event', 'State'])
print (dfObj)
state = [True,True,True,True,True,True, True, True, True, True, True, True, True, True, True,True, False, False, False, False, True, True]
dfObj["FrontLeftWindowOpen"] = state
print ("\n\n\n")
print (dfObj[dfObj.Vehicle == 1])
print ("\n\n\n")
matrix = [(1, 'Front Left Window Open', 5),
(1, 'Front Right Window Open', 2),
(2, 'Front Left Window Open', 15),
(2, 'Front Right Window Open', 12)
]
# Create a DataFrame object
dfObj = pd.DataFrame(matrix, columns=['Vehicle', 'state', 'km'])
print (dfObj)
Вывод
Vehicle Event State
0 1 Front Left Window Open True
1 2 Engine Started True
2 3 Engine Started True
3 4 Front Left Window Open True
4 1 Engine Started True
5 2 Engine Started True
6 3 Engine Started True
7 1 Odometer 254
8 1 Engine Started True
9 2 Engine Started True
10 3 Engine Started True
11 1 Front Right Window Open True
12 1 Engine Started True
13 1 Odometer 257
14 3 Engine Started True
15 1 Odometer 259
16 1 Front Left Window Open False
17 1 Engine Started True
18 1 Odometer 261
19 3 Engine Started True
20 1 Front Left Window Open True
21 1 Odometer 265
Добавлен столбец с текущим состоянием левого переднего окна
Vehicle Event State FrontLeftWindowOpen
0 1 Front Left Window Open True True
4 1 Engine Started True True
7 1 Odometer 254 True
8 1 Engine Started True True
11 1 Front Right Window Open True True
12 1 Engine Started True True
13 1 Odometer 257 True
15 1 Odometer 259 True
16 1 Front Left Window Open False False
17 1 Engine Started True False
18 1 Odometer 261 False
20 1 Front Left Window Open True True
21 1 Odometer 265 True
И окончательные расчеты одометра всех транспортных средств с количеством пройденного ими километра с открытыми окнами с правой или левой стороны.
Vehicle state km
0 1 Front Left Window Open 5
1 1 Front Right Window Open 2
2 2 Front Left Window Open 15
3 2 Front Right Window Open 12