Я пытаюсь установить определенное условие и сосчитать последовательные строки, которые удовлетворяют этому условию, и если число> 100. Я не хочу отбрасывать все строки, но сохранить первые 10 и последние 10 строк и удалить все между ними (в данном случае 80 строк). С другой стороны, если число <100, ни одна строка не будет удалена </p>
count = 0
for i in range (len(df.speed)):
if (df.speed.values [i] <= 15 ):
count += 1
if count > 100:
выборочные данные и ожидаемый результат
i speed
0 12
1 11
2 9
. .
. .
120 14
121 18
122 19
123 12
124 10
. .
. .
. .
180 12
181 19
поскольку индексы от 0 до 120 имеют меньшую скорость, чем 5, счетчик должен начинаться с i = 0 и заканчиваться на i = 120, а поскольку count> 100, алгоритм должен сохранять индекс от 0 до 9 (10 строк ) и я между 111 и 120 (10 строк) и все строки между ними должны быть удалены. В следующем случае, поскольку i = 123 имеет скорость меньше 15, счетчик должен начать новый отсчет с i = 123, и он остановится при i = 180 и, поскольку count <100. тогда никакие строки не должны быть отброшены. </p>
В основном я застрял в том, как удалить строки, которые находятся посередине, и сохранить первые и последние 10 строк. Был бы признателен, если кто-то может дать подсказку. Спасибо