我写了一个程序来计算,该程序从作为循环一部分的每分钟计算的两个变量创建一个数据帧。
在这里,我创建了数据框的初始条目:
columnsMA = ['Time', 'Fast MA:', 'Slow MA:']
dfMA = pd.DataFrame([[datetime.now().strftime("%m/%d/%Y, %H: %M"),
fastMA, slowMA]], columns=columnsMA)
这是第一分钟的正确输出:
Time Fast MA: Slow MA:
0 03/05/2019, 21: 40 3827.75 3826.9
一分钟后,我将这些新行的快速MA和慢速MA的计算结果添加到以下行:
seriesMA = [[datetime.now().strftime("%m/%d/%Y, %H: %M"), fastMA,
slowMA]]
dfMA = dfMA.append(seriesMA, ignore_index=True)
但是此后的输出是:
0 1 2 Fast MA: Slow MA: Time
0 NaN NaN NaN 3827.75 3826.9 03/05/2019, 21: 40
1 03/05/2019, 21: 41 3828.5 3827.4 NaN NaN NaN
我无法弄清楚如何使它停止追加到新列,而不是在现有列之后。如果您能帮助的话,谢谢您!
答案 0 :(得分:1)
要附加一行,请附加一个字典:
seriesMA = {'Time': datetime.now().strftime("%m/%d/%Y, %H: %M"), 'Fast MA:' : fastMA, 'Slow MA:' : slowMA}
dfMA = dfMA.append(seriesMA, ignore_index=True)
答案 1 :(得分:1)
在pandas数据帧中,列附加有一系列,而行附加有Dictionary(具有与字典关键字完全相同的列名)