我做了一个方法,它根据初始输入的数据帧返回一个数据帧。初始输入的数据框如下所示:
2021-02-22 714.5
2021-02-23 698.84
2021-02-24 742.02
输出的数据框如下所示:
0 668.86
0 673.47
0 684.018
我希望能够将零更改为上一个数据框中给出的日期。我粘贴了我的方法的代码,该方法输出带有我想更改的零的数据框:
def (ematwelve(stock)):
days=get_historical_data(stock, output_format='pandas', token=api_token,start=datetime.datetime.today()-datetime.timedelta(days=12))
length=len(days)
i=1
if (length<12):
for length in range(length,13):
i+=1
days=get_historical_data(stock, output_format='pandas',token=api_token,start=datetime.datetime.today()-datetime.timedelta(days=12+i)['close'}
summation=0
i=0
for x in range(len(days)):
summation=+days.iloc[I](this is supposed to be lowercase, autocorrects from i to I)
i=+1
average=summation/len(days)
ema=pd.DataFrame([average],columns=['Closing Price'])
k=2/13
i=1
for y in range(0,len(days)):
if (len(ema)==1):
prev_ema=average
else:
prev_ema=ema.iloc[len(ema)-1]
close=days.iloc[len(ema)]
new_ema=(close*k)+(prev_ema*(1-k))
ema=ema.append(pd.DataFrame([new_ema],columns=['Closing Price']
if (len(ema)==12):
break
return ema
感谢您提供的任何高级帮助!
答案 0 :(得分:0)
您可以使用 set_index
。根据您的需要更新以下示例:
>>> df1
value
date
2021-02-22 714.50
2021-02-23 698.84
2021-02-24 742.02
>>> df2
value
index
0 668.860
0 673.470
0 684.018
>>> df2.set_index(df1.index)
value
date
2021-02-22 668.860
2021-02-23 673.470
2021-02-24 684.018