Я хочу проверить, постоянно ли увеличиваются элементы моей серии. Например, если у меня есть следующие числа:
[7, 15, 23, 0, 32, 18]
мой вывод должен быть
[0, 1, 2, 0, 1, 0]
Если какое-либо значение больше предыдущего, то выходное значение будет выведено из предыдущего значение + 1, в противном случае оно сбрасывается в ноль.
Я реализовал наивное решение для l oop в python, которое выглядит следующим образом:
def const_increasing(tmp):
inc_ser = np.zeros(len(tmp))
for i in range(1, len(tmp)):
if tmp[i] > tmp[i-1]:
inc_ser[i] = 1 + inc_ser[i-1]
return inc_ser
Но это решение довольно медленно, так как я работаю с серией pandas больших размеров. Есть ли эффективный способ его реализации? Может быть, с использованием функции expanding () или любым другим способом в pandas или numpy.
Любая помощь в этом отношении будет принята с благодарностью.