首页 > 数据库 > mysql教程 > 从数据库创建大型 Pandas DataFrame 时如何避免内存错误?

从数据库创建大型 Pandas DataFrame 时如何避免内存错误?

Barbara Streisand
发布: 2025-01-13 09:31:12
原创
308 人浏览过

How Can I Avoid Memory Errors When Creating Large Pandas DataFrames from Databases?

使用大型数据库和 Pandas DataFrame 时管理内存

处理大型数据库并将其直接加载到 Pandas DataFrame 中通常会导致内存错误。 虽然较小的查询可能有效,但超过系统内存容量会导致问题。 幸运的是,Pandas 提供了处理此类数据集的有效解决方案。

块大小迭代器方法

与处理大型 CSV 文件类似,Pandas 的 read_sql 函数提供 iteratorchunksize 参数。设置 iterator=True 并指定 chunksize 允许以可管理的部分处理数据库查询。

代码示例:

<code class="language-python">import pandas as pd

sql = "SELECT * FROM MyTable"
chunksize = 10000  # Adjust as needed

for chunk in pd.read_sql_query(sql, engine, chunksize=chunksize):
    # Process each chunk individually</code>
登录后复制

这种迭代方法通过以较小的受控增量处理数据来防止内存过载。

处理非常大数据集的其他策略

如果 chunksize 方法不够,请考虑以下替代方法:

  • 直接 SQL 查询: 使用数据库的驱动程序执行查询并直接从数据库中小批量检索数据。
  • 批量查询:将整个查询分解为多个较小的、有针对性的查询,并批量处理其结果。
  • 外部文件存储:将数据查询成块的文件格式,例如CSV,然后根据需要将文件加载到Pandas中。 这可以避免将整个数据集一次性保存在内存中。

以上是从数据库创建大型 Pandas DataFrame 时如何避免内存错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板