2024-06-16 11:46:54 发布
网友
我有以下代码(它不是有效的,因为它是在一个循环中)
from scipy.stats import linregress results =[] for pos in range(126, len(data)) : results.append(linregress(data.a.iloc[(pos-126):pos], data.b.iloc[(pos-126):pos])[0])
如何以更有效的形式重写此代码?是否可以进行滚动申请
非常感谢
所以我最终在一个循环中完成了这项工作,而不是最好的解决方案。显然,这不是一个好的解决方案,尽管它是有效的
还有更好的主意吗
grouped = full_sample.groupby('ID') df = pd.DataFrame() for name, group in grouped: a=[] if len(group) > 126: for pos in range(126, len(group)) : a.append(linregress(group.x.iloc[(pos-126):pos], group.y.iloc[(pos-126):pos])[0]) data= pd.DataFrame(a, index= (group.index.get_level_values(0).unique())[126:] ).assign(ID=name).set_index('ID', append=True) df.append(data)
谢谢
所以我最终在一个循环中完成了这项工作,而不是最好的解决方案。显然,这不是一个好的解决方案,尽管它是有效的
还有更好的主意吗
谢谢
相关问题 更多 >
编程相关推荐