Python 中处理直播市场数据的最佳数据结构

Most performant data structure in Python to handle live streaming market data

我将要处理每秒数百 "ticks" (dicts) 的直播股票市场数据,将它们存储在内存数据结构中并分析数据。

我正在阅读 pandas 并对此感到非常兴奋,只是得知 pandas' append 函数不被推荐,因为它会在每个个人追加。 所以看起来 pandas 几乎无法用于高频流数据的实时处理和分析,例如财务或传感器数据。

所以我又回到了原生Python,这很好。为了节省 RAM,我正在考虑滚动存储最后 100,000 个左右的数据点。

什么是最高效的 Python 数据结构?

我在考虑使用列表,插入数据点编号 100,001,然后删除第一个元素,如 del list[0]。这样,我可以保留最近 100,000 个数据点的滚动历史记录,因为我的索引会越来越大。在 Python?

中似乎不可能使用原生 "rolling" 数据结构(如在 C 中具有 16 位索引和增量而无需溢出检查)

在 Python 中实施实时数据分析的最佳方式是什么?

您描述的工作流程让我想到了一个 deque,基本上是一个列表,允许在一端(例如右侧)扩展,同时从另一端弹出(fetching/removing)它们(例如剩下)。该参考文献甚至有一个 deque recipes 的简短列表来说明诸如实现 tail 或维护移动平均线(作为生成器)等常见用例。