pandas: вычисление максимума окна черного человека: отсутствует функция pandas.core.window.Window.[max, apply]
В пандах я пытаюсь вычислить максимум типа окна блэкмена скользящего окна Series
, Для этого мне нужно запустить пользовательскую функцию над скользящим окном с blackman
win_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
)
Если бы кто-то мог проверить это, я был бы признателен!