По сути, я хочу преобразовать последовательные дубликаты Истин в Ложь, как следует из названия.
Например, скажем, у меня есть массив 0 и 1 с
x = pd.Series([1,0,0,1,1])
должно стать:
y = pd.Series([0,0,0,0,1])
# where the 1st element of x becomes 0 since its not a consecutive
# and the 4th element becomes 0 because its the first instance of the consecutive duplicate
# And everything else should remain the same.
Это также может относиться к последовательностям более двух, скажем, у меня гораздо более длинный массив:
например.
x = pd.Series([1,0,0,1,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,1])
становится;
y = pd.Series([0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1])
Сообщения, которые я искал, в основном либо удаляют последовательные дубликаты, но не сохраняют первоначальную длину. В этом случае он должен сохранить исходную длину.
Это что-то вроде следующего кода:
for i in range(len(x)):
if x[i] == x[i+1]:
x[i] = True
else:
x[i] = False
но это дает мне бесконечный бег. И не вмещает в себя более двух последовательных.