Pandas 和大型 SQL 查询:一种节省内存的方法
使用 pandas.io.sql.read_frame()
处理超过 500 万条记录的 SQL 查询可能会导致内存错误。 然而,pandas 提供了一个强大的解决方案来处理如此大的数据集:以更小的、可管理的块来处理它们。
从 pandas 0.15 版本开始,read_sql_query()
函数合并了 chunksize
参数。这允许您迭代地检索查询结果,从而显着减少内存消耗。 您可以指定每个块所需的记录数,从而有效地将大型查询分解为更小、更易于管理的部分。
例如,要处理 5,000 条记录块中的查询:
<code class="language-python">sql = "SELECT * FROM MyTable" for chunk in pd.read_sql_query(sql, engine, chunksize=5000): # Process each chunk here (e.g., calculations, analysis, etc.) print(chunk) </code>
这种迭代方法避免了将整个数据集同时加载到内存中。 每个块都是独立处理的,最大限度地减少内存占用,并在 pandas DataFrame 中实现高效的数据操作,即使数据集非常大。 chunksize
参数是有效处理大量 SQL 查询和防止内存耗尽的关键。
以上是如何在 Pandas 中处理大型 SQL 查询而不耗尽内存?的详细内容。更多信息请关注PHP中文网其他相关文章!