更改熊猫数据框中的第一列

时间:2021-03-11 19:16:35

标签: python pandas dataframe

我做了一个方法,它根据初始输入的数据帧返回一个数据帧。初始输入的数据框如下所示:

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

感谢您提供的任何高级帮助!

1 个答案:

答案 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