pandas: вычисление максимума окна черного человека: отсутствует функция pandas.core.window.Window.[max, apply]

В пандах я пытаюсь вычислить максимум типа окна блэкмена скользящего окна Series, Для этого мне нужно запустить пользовательскую функцию над скользящим окном с blackmanwin_type, В отличие от по умолчанию win_type, который возвращает pandas.core.window.Rolling, любой другой win_type возвращает pandas.core.window.Window, в котором отсутствуют методы, необходимые для вычисления этого: max или пользовательская функция через apply,

window = df['Net Volume'].rolling(window=range_window, win_type='blackman').max()

Это приводит к: AttributeError: 'Window' object has no attribute 'max'

Поэтому я пробую кастом apply:

window = df['Net Volume'].rolling(window=range_window, win_type='blackman').apply(lambda x: np.max(x))

И я получаю: AttributeError: 'Window' object has no attribute 'apply'

Я в тупике. Как я могу рассчитать максимум окна черного человека Window? Window объект гораздо менее полезен, чем Rolling объект.

1 ответ

Решение, кажется, использует окно по умолчанию для pandas.core.Series.rolling а затем через apply с raw=True умножить транспонированный np.blackman вектор столбца (значения в диапазоне 0-1) к окну, чтобы произвести свой собственный win_type='blackman', Затем вы np.max на этот результат:

df['Net Volume'].rolling(window=range_window).apply(
    lambda x: np.max(x * np.blackman(range_window)), raw=True
)

Если бы кто-то мог проверить это, я был бы признателен!

Другие вопросы по тегам