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

В пандах я пытаюсь вычислить максимум типа окна чернокожего скользящего окна 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'

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

1 Ответ

0 голосов
/ 17 сентября 2018

Решение, похоже, использует окно по умолчанию для 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
)

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

...