pandas:计算布莱克曼窗口的最大值:缺少函数pandas.core.window.Window。[max,apply]

时间:2018-09-16 23:48:12

标签: python pandas numpy window rolling-computation

在熊猫中,我正在尝试计算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 个答案:

答案 0 :(得分:1)

该解决方案似乎将默认窗口用于"read",然后将pandas.core.Series.rollingapply一起使用,将转置后的raw=True列向量(值范围为0-1)乘以窗口来实现自己的np.blackman。然后,您win_type='blackman'看到以下结果:

np.max

如果有人可以检查一下,我将不胜感激!