如何将循环代码更改为pythonic方式

时间:2019-07-04 02:28:38

标签: 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[i]+previous
    previous=(1-a)*y
    y=pd.DataFrame([y])
    dff2=dff2.append(y)

2 个答案:

答案 0 :(得分:1)

您所计算的结果在熊猫中称为 id_emp dt_of_join 0 2 30-03-2018 1 4 01-01-2019 2 5 21-06-2019 3 7 10-06-2018 4 12 03-02-2019 5 10 09-05-2019 6 19 25-12-2018 ,因此您可以只使用ewm mean方法。 这是与您的代码获得相同结果的代码:

ewm().mean()

答案 1 :(得分:0)

for value in x1['values']:
    y, previous = pd.Dataframe([a * value + previous]), (1-a)*y
    dff2=dff2.append(y)