У меня есть некоторые данные временных рядов, где, к сожалению, обернуты идентификаторы строк с типом 'RX' или 'CR C' - для простоты в этом примере он оборачивается после достижения '1'. Это означает, что я получаю несколько 0 и 1 идентификаторов, когда они должны соответствовать типу 'TX' от 0 до 4. 'TX' всегда корректен.
То, что я хочу сделать, это сгруппировать по временному окну 10 мс из каждой строке TX и исправьте столбец id на основе значения id в строке TX. т.е. ..
От:
time type id
0 2020-01-01 10:33:00.000 TX 0
1 2020-01-01 10:34:00.500 TX 1
2 2020-01-01 10:34:00.000 TX 2
3 2020-01-01 10:34:00.007 CRC 2
4 2020-01-01 10:34:00.009 RX 2
5 2020-01-01 10:34:00.027 RX 2
6 2020-01-01 10:34:00.047 RX 2
7 2020-01-01 10:34:00.012 TX 3
8 2020-01-01 10:34:00.013 RX 3
9 2020-01-01 10:34:00.038 RX 3
10 2020-01-01 10:34:00.026 TX 4
11 2020-01-01 10:34:00.036 TX 5
12 2020-01-01 10:34:00.041 TX 6
До:
time type id
0 2020-01-01 10:33:00.000 TX 0
1 2020-01-01 10:34:00.500 TX 1
2 2020-01-01 10:34:00.000 TX 2
3 2020-01-01 10:34:00.007 CRC 2
4 2020-01-01 10:34:00.009 RX 2
5 2020-01-01 10:34:00.012 TX 3
6 2020-01-01 10:34:00.013 RX 3
7 2020-01-01 10:34:00.026 TX 4
8 2020-01-01 10:34:00.027 RX 4
9 2020-01-01 10:34:00.036 TX 5
10 2020-01-01 10:34:00.038 RX 5
11 2020-01-01 10:34:00.041 TX 6
12 2020-01-01 10:34:00.047 RX 6
MWE:
s1 = pd.to_datetime(['20200101 10:33:00.000',
'20200101 10:34:00.500',
'20200101 10:34:00.000', '20200101 10:34:00.007', '20200101 10:34:00.009', '20200101 10:34:00.027', '20200101 10:34:00.047',
'20200101 10:34:00.012', '20200101 10:34:00.013', '20200101 10:34:00.038',
'20200101 10:34:00.026',
'20200101 10:34:00.036',
'20200101 10:34:00.041'])
d1 = {'time': s1,
'type': ['TX', 'TX', 'TX', 'CRC', 'RX', 'RX', 'RX', 'TX', 'RX', 'RX', 'TX', 'TX', 'TX'],
'id': [0, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 5, 6]}
df1 = pd.DataFrame(data=d1)
print(df1)
s2 = pd.to_datetime(['20200101 10:33:00.000',
'20200101 10:34:00.500',
'20200101 10:34:00.000', '20200101 10:34:00.007', '20200101 10:34:00.009',
'20200101 10:34:00.012', '20200101 10:34:00.013',
'20200101 10:34:00.026', '20200101 10:34:00.027',
'20200101 10:34:00.036', '20200101 10:34:00.038',
'20200101 10:34:00.041', '20200101 10:34:00.047'])
d2 = {'time': s2,
'type': ['TX', 'TX', 'TX', 'CRC', 'RX', 'TX', 'RX', 'TX', 'RX', 'TX', 'RX', 'TX', 'RX'],
'id': [0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6]}
df2 = pd.DataFrame(data=d2)
print(df2)