我想要一个大小为 8 的滚动窗口并减去它的平均值。我认为这样做很简单。
df[column].rolling(8,min_periods=4)-df[column].rolling(8,min_periods=4).mean()
显然这是错误的。我在这里阅读了文档 https://pandas.pydata.org/pandas-docs/stable/computation.html
所以我想使用.apply()
def dumby(x):
return x
df[column].rolling(8,min_periods=4).apply(dumby)-df[column].rolling(8,min_periods=4).mean()
这也不起作用,对我来说似乎不是好的代码。
我将dumby修改为以下内容,但它不起作用。它指出错误需要一个 float 。
def dumby(x):
t=[]
for i in x:
t.append(i)
j=[float(y) for y in t]
return j
感谢任何帮助。
编辑添加的表格以澄清我的要求。寻求最终值(value)。
编辑 2:使用 100k + 行,因此窗口方法很重要。
最佳答案
我认为这会起作用:
df['col'] - df['col'].rolling(8).mean()
关于 python Pandas 。如何使用滚动窗口进行减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49243510/