R 语言 转为python moving range

R语言转成python. 求助

R 语言如下

SmovM <- data.frame(movM %>% group_by(Parameter,Step,filename)%>%
                     mutate(row=row_number(),avg=zoo::rollmean(Value,k=7,fill = NA,align = "center"),
                            std=zoo::rollapply(Value, width=15, FUN=sd, fill=NA,align = "center")))

大概是新建三列对么? python 用agg 实现?底下R 中的Width 相当于窗宽?

movM  = movM.groupby((['Parameter','Step','filename']).agg(row = row_number(),avg = ('Value','rolling(window=7,center=True).mean()'), std = ('Value','rolling(window=15,center=True).std()'))
下面这个提示AttributeError: 'float' object has no attribute 'rolling'
def moving_rolling(x):
return x['Value'].rolling(window=7,center=True).mean(),x['Value'].rolling(window=15,center=True).std()
movM[['avg','std']] = movM.apply(moving_rolling, axis = 1,result_type="expand")
    

pandas API as below:
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None, method='single')
#zoo::rollapply(Value, width=15, FUN=sd, fill=NA,align = "center"
阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题