【发布时间】:2019-02-27 21:44:42
【问题描述】:
所以我制作了一个程序,其中下面的变量 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)
但是,每次计算时,新的分钟值都会覆盖之前的值,因此无法进行比较。如果你能帮上忙,我非常感谢!
【问题讨论】:
-
shift()方法可能会有所帮助。例如df['a'].shift()将是一个具有相同长度的新系列,但每一行向下移动一个,所以说df['a'] + df['a'].shift()将是当前值和前一个值的总和。
标签: python python-3.x pandas series