Как определить n-ю строку, удовлетворяющую условиюPython

Программы на Python
Anonymous
Как определить n-ю строку, удовлетворяющую условию

Сообщение Anonymous »

У меня есть фрейм данных с месяцами и продажами. Если кто-то совершает 250 продаж в течение 3 месяцев подряд, он получает бонус.
  • Как только бонусный месяц определен, счетчик сбрасывается и начинает считать следующие 3 месяца подряд с 250 продажами.
  • если продаж менее 250, счетчик сбрасывается.


Месяц
Продажи
Постоянство за 3 месяца




Месяц 1
250



Месяц 2
250



Месяц 3
250
1


Месяц 4
250



Месяц 5
250



Месяц 6
250
1


Месяц 7
0



Месяц 8
250



Месяц 9
250



Месяц 10
250
1


Месяц 11
250



Месяц 12
250



Месяц 13
0



Месяц 14
250



Месяц 15
250



Месяц 16
250
1



Я хочу заполнить столбец согласованности за 3 месяца
Пытался использовать количество накоплений с условиями, но это не сработало, и я нигде не смог найти такого примера. Я пытался использовать скользящее окно для идентификации каждой третьей последовательной записи с 250. Но тогда оно не сбрасывается после каждого набора из 3 последовательных 250.

Код: Выделить всё

df.groupby('id').apply(lambda x: x['gt_250'].rolling(min_periods=1, window=3).sum())
#-- grouped by id because this has to be computed for each salesperson_id
Результат, который я получил, был:



Месячные
продажи
Постоянство за 3 месяца




Месяц 1
250



Месяц 2
250



Месяц 3
250
3


Месяц 4
250
3


Месяц 5
250
3




Подробнее здесь: https://stackoverflow.com/questions/790 ... -condition

Вернуться в «Python»