append正在创建新列,而不是附加到现有列

2024-03-29 09:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,它通过每分钟作为循环的一部分计算的两个变量来创建一个数据帧

在这里,我创建了dataframe的初始条目:

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

我不知道如何让它停止附加到新列而不是现有列之后。如果你能帮忙的话,非常感谢


Tags: 数据程序datetimetimenannowfastslow
2条回答

在dataframe中,列由序列附加,行由字典附加(列名称与字典的键完全相同)

若要追加行,请使用字典追加:

seriesMA = {'Time': datetime.now().strftime("%m/%d/%Y, %H: %M"), 'Fast MA:' : fastMA, 'Slow MA:' : slowMA}
    dfMA = dfMA.append(seriesMA, ignore_index=True)

相关问题 更多 >