У меня есть фрейм данных pandas, где столбец отображает целочисленный временной индекс, и я хочу добавить столбец, в котором хранится информация о том, является ли строка частью полосы и какова длина полосы. Например, учитывая столбец time
, я хотел бы вычислить столбец streak
, например,
time streak
0 3
1 3
2 3
4 2
5 2
5 2
9 1
11 1
11 1
Первые три строки являются частью полосы из трех, так как индексы 0,1,2 являются смежными. Следующие три строки имеют полосу 2, так как индексы 4,5 также являются смежными; Индекс 5 повторяется, но это не должно учитываться при определении длины полосы. Наконец, последние три строки не соприкасаются с чем-либо еще, поэтому они имеют полосу 1. Обратите внимание, что иногда несколько строк могут иметь одинаковые значения time
. Мне нужно посчитать длину полосы в единицах времени, чтобы множественные записи не влияли на длину полосы, а строки с одинаковым индексом времени имели одинаковую длину полосы. Помните, что другие столбцы (не показаны) хранятся в кадре данных.
Как мне получить значение? Я пытался поиграться с groupby
, shift
и подобными функциями, но не очень далеко.
РЕДАКТИРОВАТЬ: извините, я забыл указать, что иногда индекс time
может повторяться. Я расширил вопрос, чтобы учесть это.