Python 在应用程序中应用自定义窗口功能
我有一个数据帧,例如Python 在应用程序中应用自定义窗口功能,python,pandas,window-functions,rolling-computation,Python,Pandas,Window Functions,Rolling Computation,我有一个数据帧,例如 df = pd.DataFrame([1,2,3,4,5,6,7,8,9]) 现在我想应用一个滚动平均值,例如 df.rolling(window=3, win_type=None).mean() 这给了我一个平均加权元素的结果。 现在我想更改窗口函数。我知道,这可以通过将字符串(例如,'hann')传递给win\u type参数来实现 df.rolling(window=3, win_type='hann').mean() 现在我感兴趣的一点是应用一个窗口函数,它使
df = pd.DataFrame([1,2,3,4,5,6,7,8,9])
现在我想应用一个滚动平均值,例如
df.rolling(window=3, win_type=None).mean()
这给了我一个平均加权元素的结果。
现在我想更改窗口函数。我知道,这可以通过将字符串(例如,'hann'
)传递给win\u type
参数来实现
df.rolling(window=3, win_type='hann').mean()
现在我感兴趣的一点是应用一个窗口函数,它使用指数衰减的权重,给“右边”的值赋予高权重,给“更左边”的值赋予低权重。这应该可以通过使用scipy.signal.windows.index
并调整参数来实现。但是,我正在努力传递这些参数,因为win\u type
只接受字符串
当我尝试win\u type='exponential'
时,我得到ValueError:指数窗口需要tau
有人能告诉我如何将参数(如tau
传递给win\u type
),甚至自己创建一个窗口函数吗?答案是很重要。解决方案取决于熊猫的版本。
Python通用
将熊猫作为pd导入
df=pd.数据帧([1,2,3,4,5,6,7,8,9])
在tau=10的情况下。对于熊猫,='0.24.2'
df.rolling(窗口=(3,10),win_type='index').mean()
对于熊猫,='1.1.3'
df.滚动(窗口=3,win_type='index')。平均值(tau=10)
请毫不犹豫地添加其他版本依赖项。从Stepan提供的链接中找到答案: Tau必须在函数调用中传递,即
df.rolling(window=(3), win_type='exponential').mean(tau=10)
谢谢。然而,复制这个精确的代码仍然会产生``ValueError:指数窗口需要tau```奇怪。这3行代码适合我。您使用的是pandas和numpy的哪些版本?我的pandas是1.1.3我使用的pandas='0.24.2',在检查版本1.1.3后,我可以声称解决方案取决于版本。