代码之家  ›  专栏  ›  技术社区  ›  rjurney Sean Vieira

pandas:计算blackman窗口的最大值:缺少函数pandas。果心窗窗[麦克斯,申请]

  •  1
  • rjurney Sean Vieira  · 技术社区  · 6 年前

    在《熊猫》一书中,我试图计算一个黑色窗口类型的最大值,即一个滚动窗口的最大值 Series .为了实现这一点,我需要在一个滚动窗口上运行一个自定义函数 blackman win_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: 'Window' object has no attribute 'max'

    所以我尝试了一个习惯 申请 :

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

    我得到: AttributeError: 'Window' object has no attribute 'apply'

    我陷入了僵局。我如何计算一个窗口中blackman窗口的最大值 Window ? 这个 对象远不如 Rolling 对象

    1 回复  |  直到 6 年前
        1
  •  1
  •   rjurney Sean Vieira    6 年前

    解决方案似乎使用默认窗口 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
    )
    

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