高效地向pandas DataFram添加行

2024-06-25 22:41:41 发布

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

我试图在python上创建一个简单的backtester,它允许我评估交易策略的性能。作为backtester的一部分,我需要记录发生的事务。E、 g

Day     Stock    Action     Quantity
1       AAPL     BUY        20
2       CSCO     SELL       30
2       AMZN     SELL       50

在交易模拟期间,我需要添加更多的交易。在

最有效的方法是什么。我是否应该在模拟开始时创建一个transactions列表,并在执行过程中追加诸如[5, 'AAPL', 'BUY', 20]之类的列表。我应该使用字典还是numpy数组?还是直接用熊猫数据框?在

谢谢

杰克


Tags: 列表stock记录actionbuy交易性能事务
1条回答
网友
1楼 · 发布于 2024-06-25 22:41:41

list.append操作是amortised constant time操作,因为它只涉及移动指针。在

在C语言中,numpy.ndarraypd.DataFrame对象在内部表示为数组,它们是不可变的。每次“附加”到数组/数据帧时,您都必须为旧数据的整个副本和附加的数据重新分配新内存,最终复杂性为线性。在

因此,正如@ayhan在a comment中所说,将数据累积到list中,然后在完成后加载到数据帧中。在

相关问题 更多 >