我希望在滚动窗口上应用功能。我使用groupby
方法组织数据。但是该函数必须返回两个值:当我这样做时,我得到了错误:
cannot convert the series to <type 'float'>
当我运行带有返回单个值的函数的df.groupby(['A'])['B'].rolling(2).apply(function)
时,它将起作用。但是然后我修改代码以使用返回两个值的函数:
df=pd.DataFrame({'A':[1,1,1,1,2,2,2,2],'B':[0.2,0.5,1.0,1.2,1.7,1.9,2.1,2.4]})
def basic_function(y):
sum1=0
sum2=0
for x in y:
sum1=sum1+x*x
sum2=sum2+x*x*x
return sum1/len(y),sum2/len(y)
df.groupby(['A'])['B'].rolling(2).apply(basic_function)
我期望代码将两个新列添加到数据框。相反,我收到一条错误消息。