繁体   English   中英

高效地向pandas DataFrame添加行

[英]Efficiently adding rows to pandas DataFrame

我正在尝试在python上创建一个简单的回测器,使我能够评估交易策略的性能。 作为回测器的一部分,我需要记录发生的事务。 例如,

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

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

什么是最有效的方法。 我应该在模拟开始时创建transactions清单,并随即添加清单,例如[5, 'AAPL', 'BUY', 20] 我应该改用字典还是numpy数组? 还是直接使用Pandas DataFrame?

谢谢,

插口

list.append操作是摊销的固定时间操作,因为它只涉及到指针的移动。

OTOH, numpy.ndarraypd.DataFrame对象在内部用C表示为数组,并且它们是不可变的。 每次“追加”到数组/数据帧时,都必须为旧数据的整个副本以及附加数据重新分配新的内存,最终导致线性复杂度。

因此,正如@ayhan在评论中所说,将您的数据存储在一个list ,然后在完成后加载到数据帧中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM