Мне было интересно, есть ли удобный способ расчета скользящего среднего, чтобы окно перемещалось вдоль некоторого столбца без даты и собирало значения из другого столбца?
В частности, я хотел бы рассчитать соотношение истинных значений в столбце «Успех». Окно должно двигаться вдоль столбца «Выручка компании», чтобы оно производило агрегирование по строкам, которые имеют «Выручка компании» + - некоторое количество текущего места окна.
Панды имеют функцию df.rolling (), ноЯ не думаю, что это предназначено для такого рода задач.
В настоящее время я думаю о создании нового фрейма данных со столбцом «Выручка компании» для значений, по которым я хочу перейти в окно. Затем я бы использовал .apply () для фильтрации данных из исходного фрейма данных, который включает строки, принадлежащие текущему окну «Доход компании», вычислял показатель «Успех» True и сохранял значение ставки в новом столбце в новом фрейме данных. Этот подход кажется довольно неуклюжим, и мне было интересно, есть ли лучшие способы для этого?
Пример того, что я хочу:
Исходный фрейм данных (заказанный доходом Компании для удобства чтения):
'Company revenue' 'Success'
51 False
101 True
151 False
201 True
201 True
301 False
351 False
501 True
601 False
Требуемый результат с шагом окна 100 для «Дохода компании» и размером окна + - 200
'Company revenue' 'Success rate%'
0 0.33
100 0.6
200 0.43
300 0.5
400 0.6
500 0.25
600 0.5
700 0.5
800 0
900 NaN
Как видите, размер окна не должен беспокоить количество включенных выборок. , но о том, соответствует ли «доход Компании» текущему окну.
Я полагаю, что могу сделать так, как описано выше, но есть ли более красноречивый способ сделать это?