首頁 > 資料庫 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板