Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将for循环代码更改为pythonic方式_Python 3.x_Pandas_Numpy - Fatal编程技术网

Python 3.x 如何将for循环代码更改为pythonic方式

Python 3.x 如何将for循环代码更改为pythonic方式,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我有一个代码它非常慢,请无论如何有没有改变它的速度快 df=pd.DataFrame({'value':[1,2,4,5,67,8,8,89,9,98,7,87,87,87,89,89,9,8,9,9,909,9,8,9,8,9,89,8,8,9,89]}) a=0.0119 x1=df['value'] Y=x1.iloc[0:10] Y_mean=np.mean(Y) previous=Y_mean for i in range(len(x1)): y=a*x1.values[

我有一个代码它非常慢,请无论如何有没有改变它的速度快

df=pd.DataFrame({'value':[1,2,4,5,67,8,8,89,9,98,7,87,87,87,89,89,9,8,9,9,909,9,8,9,8,9,89,8,8,9,89]})
a=0.0119  
x1=df['value']
Y=x1.iloc[0:10]
Y_mean=np.mean(Y)
previous=Y_mean

for i in range(len(x1)):
    y=a*x1.values[i]+previous
    previous=(1-a)*y
    y=pd.DataFrame([y])
    dff2=dff2.append(y)

您计算的在pandas中称为
ewm mean
,因此您可以使用
ewm().mean()
方法。 以下是获得与代码相同结果的代码:

df=pd.DataFrame({'value':[1,2,4,5,67,8,8,89,9,98,7,87,87,87,89,89,9,8,9,9,909,9,8,9,8,9,89,8,8,9,89]})
a=0.0119  
Y=x1.iloc[0:10]
Y_mean=np.mean(Y)
s = df["value"]
pd.concat([pd.Series([Y_mean/(1-a)]), s]).ewm(alpha=a, adjust=False).mean().iloc[1:]

请出示全部code@WeNYoBen它的完整代码伙伴:)如果它是完整代码,我可以复制并运行它。如果我尝试将
x1=df['value']
作为第一行运行,您预计会发生什么?请参阅有关创建的SO帮助页面。然后在哪里a@WeNYoBen我改了问题,请查收now@L.F.,未来的读者是次要用户,而不是主要用户。OP问题是当前和未来的背景。关于解释,我看不出这个答案和公认的答案有多大区别。
df=pd.DataFrame({'value':[1,2,4,5,67,8,8,89,9,98,7,87,87,87,89,89,9,8,9,9,909,9,8,9,8,9,89,8,8,9,89]})
a=0.0119  
Y=x1.iloc[0:10]
Y_mean=np.mean(Y)
s = df["value"]
pd.concat([pd.Series([Y_mean/(1-a)]), s]).ewm(alpha=a, adjust=False).mean().iloc[1:]