我有一个非常慢的代码,请反正将其更改为快速代码?
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)
答案 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)