Python 从每分钟更新的变量创建系列

Python 从每分钟更新的变量创建系列,python,python-3.x,pandas,series,Python,Python 3.x,Pandas,Series,所以我在做一个程序,下面的变量fastMA和slowMA每分钟计算一次。我试图找出一种方法,将计算出的每个实例添加到一个系列中,以便将最近一分钟的值与最后一分钟的值进行比较。所以我只需要两个最新的计算 if len(dfC) >= 75: fastMAcloses = pd.DataFrame(dfC.tail(20)).values fastMA = fastMAcloses.sum() / 20 print(fastMA) slowMAcloses

所以我在做一个程序,下面的变量fastMA和slowMA每分钟计算一次。我试图找出一种方法,将计算出的每个实例添加到一个系列中,以便将最近一分钟的值与最后一分钟的值进行比较。所以我只需要两个最新的计算

if len(dfC) >= 75:

    fastMAcloses = pd.DataFrame(dfC.tail(20)).values
    fastMA = fastMAcloses.sum() / 20
    print(fastMA)

    slowMAcloses = pd.DataFrame(dfC.tail(75)).values
    slowMA = slowMAcloses.sum() / 75
    print(slowMA)

else:
    print('... calculating MAs in', 75 - len(dfC), 'min')
到目前为止,我想到的是:

    columnsMA = ['Fast MA:', 'Slow MA:']
    valuesMA = [fastMA, slowMA]
    listMA = list(valuesMA)
    seriesMA = pd.Series(listMA, columnsMA)
    print(seriesMA)

但是,每次计算时,新分钟的值都会覆盖以前的值,因此无法进行比较。如果你能帮忙,我非常感谢你

您可以尝试以下类似的方法:

columnsMA = ['Time:','Fast MA:', 'Slow MA:']

#Initiate results
results=pd.DataFrame([[datetime.datetime.now(),fastMA,slowMA]],columns=columnsMA)
                print(results)

#Append to results (say every minute)
dfTemp=pd.DataFrame([[datetime.datetime.now(),fastMA,slowMA]],columns=columnsMA)
results=results.append(dfTemp,ignore_index=True)
print(results)

#Append to results (say every minute)
dfTemp=pd.DataFrame([[datetime.datetime.now(),fastMA,slowMA]],columns=columnsMA)
results=results.append(dfTemp,ignore_index=True)
print(results)

    ... keep appending to the dataframe ....
还有一个concat函数,您可以进一步研究它

我想,如果你只想在内存中保留2分钟的数据,而不是完整的历史记录,你可以从尾部和新的计算结果构建一个数据框。

shift方法可能会有所帮助。例如,df['a'].shift将是一个长度相同的新序列,但每行下移一次,因此可以说df['a']+df['a']。shift将是当前值和以前值的总和。