Python pandas:计算blackman窗口的最大值:缺少pandas.core.window.window函数。[最大值,应用]

Python pandas:计算blackman窗口的最大值:缺少pandas.core.window.window函数。[最大值,应用],python,pandas,numpy,window,rolling-computation,Python,Pandas,Numpy,Window,Rolling Computation,在pandas中,我试图计算系列滚动窗口的blackman窗口类型的最大值。要实现这一点,我需要使用blackmanwin\u type在滚动窗口上运行一个自定义函数。与默认的win_类型不同,它返回一个pandas.core.window.Rolling,任何其他win_类型都返回一个pandas.core.window.window,它缺少计算该值所需的方法:max或通过apply的自定义函数 window = df['Net Volume'].rolling(window=range_wi

在pandas中,我试图计算
系列
滚动窗口的blackman窗口类型的最大值。要实现这一点,我需要使用
blackman
win\u type
在滚动窗口上运行一个自定义函数。与默认的
win_类型
不同,它返回一个
pandas.core.window.Rolling
,任何其他
win_类型
都返回一个
pandas.core.window.window
,它缺少计算该值所需的方法:
max
或通过
apply
的自定义函数

window = df['Net Volume'].rolling(window=range_window, win_type='blackman').max()
这将导致:
AttributeError:“窗口”对象没有属性“max”

所以我尝试了一个自定义的
应用程序

window = df['Net Volume'].rolling(window=range_window, win_type='blackman').apply(lambda x: np.max(x))
我得到:
AttributeError:“窗口”对象没有属性“应用”


我陷入了僵局。如何计算
窗口
中blackman窗口的最大值?
窗口
对象远不如
滚动
对象有用。

解决方案似乎使用
pandas.core.Series.Rolling
的默认窗口,然后通过
应用
raw=True
乘以转置的
np.blackman
列向量(值范围为0-1)到窗口以实现您自己的
win\u type='blackman'
。然后在这个结果上执行
np.max

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

如果有人能检查一下,我将不胜感激

iter
尚未在Blackman windows上实现(请检查),因此我猜获得
max
仍然是不可能的?我找到了答案。请参阅解决方案。使用
np.blackman
而不是
pd
;)进行漂亮的捕获谢谢我不太懂聪明的狗屎!:)