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中文網其他相關文章!