После pandas DataFrame представляет состояния процесса, который отправляет индексированные пакеты из SR C в DST:
TS SRC DST | R
--------------------------|-----
1.0 1 NaN | 1 (1 sent, 0 received, 0 skipped, 0 lost)
2.1 2 NaN | 2 (2 sent, 0 received, 0 skipped, 0 lost)
3.1 NaN NaN | 2 (2 sent, 0 received, 0 skipped, 0 lost)
4.0 NaN 1 | 1 (2 sent, 1 received, 0 skipped, 0 lost)
5.3 7 NaN | 2 (3 sent, 1 received, 4 skipped, 0 lost)
6.0 8 2 | 2 (4 sent, 2 received, 0 skipped, 0 lost)
7.0 10 NaN | 3 (5 sent, 2 received, 1 skipped, 0 lost)
8.2 17 10 | 1 (6 sent, 3 received, 6 skipped, 2 lost)
9.1 19 NaN | 2 (7 sent, 3 received, 1 skipped, 0 lost)
10.0 25 19 | 1 (8 sent, 4 received, 5 skipped, 1 lost)
11.0 30 30 | 0 (9 sent, 5 received, 4 skipped, 1 lost)
, где TS - столбец времени, SR C - порядковый номер (индекс) отправленные элементы и порядковый номер DST полученного элемента. R - количество пакетов «в пути». Значение R учитывает значение индекса последнего принятого пакета в DST и считает пакеты «в пути», так как это же значение индекса SR C. Пакеты могут быть потеряны при передаче или пропущены в SR C.
Я хочу получить количество «транзитных» пакетов (столбец R) с учетом столбцов TS, SR C & DST. Простые агрегаты, которые я пытаюсь, не дают желаемого результата. Существует ли стандартный способ вычисления этого значения с использованием векторизованных операций (для повышения производительности) над pandas DataFrame?