Python Pandas 全局 vs 传递变量

标签 python pandas sierrachart

我正在创建一个“实时”进程,该进程从 SierraChart 更新的专有格式的 OHLCVTBA 文件中获取数据。读取数据并使用生成器创建数据框的代码发布在 pastebin 上。 [删除死链接]。

我意识到我的结构(新数据驱动)是错误的,我正准备重新组织它。 PhE's question and Wes's response使我朝着填充预填充数据框的方向发展,该数据框运行良好。我的问题是:

将我的数据帧和指针作为全局变量保存,还是将它们传入和传出使用它们的各种函数更快?此外,是否还有其他考虑因素应该插入这一选择?

谢谢。

最佳答案

Local variables are faster to access than global variables in python .

在 pandas 的上下文中,这意味着您应该将变量传递给有意义的函数(这意味着可以在函数内部更快地找到它们)。相反,python 中的函数调用很昂贵(如果你称它们很多),这就是为什么 numpy/pandas 尽可能使用矢量化函数。 显然,如果您在函数内部执行操作,则必须小心确保所有计算都在原地完成。

在担心速度之前,我通常会先以“pythonic”/“pandastic”方式让事情正常运行。然后使用 %timeit 看看它是否已经足够快(通常是这样)。添加单元测试。调整速度、%timeit、%prun 和 %timeit 一些。如果是大项目vbench .

关于Python Pandas 全局 vs 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929105/

相关文章:

python - Django NoReverseMatch URL 模式

python - IB TWS API - reqHistoricalData - keepUpToDate

python - 我需要一些有关静态和媒体文件的建议

python - 如何在 python 中使用 plt.savefigure() 保存大量图像?

c++ - 如何将带有头文件的外部文件夹(包含文件夹)添加到 Visual Studio 项目?

python - opencv 用户绘制矩形进行裁剪

python - Azure Databricks Notebook 中的 Pandas 缺少 read_parquet 函数

python - 日期格式化为月份

c - 共享内存段dll单独加载其实例