有效率地將海量 SQL 查詢結果載入到 Pandas DataFrames
處理大量資料集通常涉及從 SQL 資料庫檢索資料並將其載入到 pandas DataFrames 中。 然而,直接載入數百萬筆記錄很容易導致記憶體錯誤。
常見錯誤是由於嘗試將整個資料集同時載入到記憶體中而產生的。 Pandas 提供了一個解決方案:其 chunksize
函數中的 read_sql_query
參數。
利用 chunksize
進行增量資料載入:
chunksize
參數可讓您以更小、可管理的批次讀取 SQL 查詢結果,從而顯著減少記憶體壓力。
<code class="language-python">import pandas as pd pd.read_sql_query(sql, engine, chunksize=100000)</code>
透過指定chunksize
,您可以控制每次迭代中讀取的行數。
實際範例:
<code class="language-python">sql = "SELECT * FROM MyTable" for chunk in pd.read_sql_query(sql, engine, chunksize=5): # Process each chunk individually print(chunk)</code>
此程式碼迭代查詢結果,獨立處理每個 chunk
。 這樣可以透過以較小的、易於消化的部分處理資料來防止記憶體過載。
進一步最佳化策略:
雖然 chunksize
非常有效,但請考慮針對大型資料集進行以下額外最佳化:
但是,對於許多場景,在處理 pandas 中的大量 SQL 查詢結果時,利用 chunksize
參數為記憶體管理提供了簡單而強大的解決方案。
以上是將大型 SQL 查詢結果載入到 Pandas DataFrame 時如何避免記憶體錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!