首頁 >後端開發 >Python教學 >Pandas 如何處理超出可用記憶體的大型資料集?

Pandas 如何處理超出可用記憶體的大型資料集?

Linda Hamilton
Linda Hamilton原創
2024-12-10 19:49:11651瀏覽

How Can Pandas Handle Large Datasets That Exceed Available Memory?

使用 Pandas 的大數據工作流程

處理太大而無法放入記憶體的資料集時,核心外工作流程至關重要。在此背景下,我們探索使用 pandas 處理大數據的最佳實踐。

要有效管理大型資料集,請考慮以下最佳實務工作流程:

  1. 將平面檔案載入磁碟資料庫結構:

    • 利用HDFStore以結構化格式在磁碟上儲存大型資料集。
    • 定義群組對應以根據欄位分組組織表。
    • 將資料分組附加到每個表,確保定義資料列以實現快速行子集。
  2. 查詢資料庫以擷取資料Pandas 資料結構:

    • 選擇特定欄位分組以高效檢索資料。
    • 使用函數從多個表中無縫選擇和連接資料。
    • 在資料列上建立索引以改進行子集設定
  3. 操作Pandas 中的片段後更新資料庫:

    • 建立新群組來儲存從中建立的新列資料操作。
    • 確保 data_columns 在 new 中正確定義群組。
    • 啟用壓縮以最小化儲存空間。

範例:

import pandas as pd

# Group mappings for logical field grouping
group_map = {
    "A": {"fields": ["field_1", "field_2"], "dc": ["field_1"]},
    "B": {"fields": ["field_10"], "dc": ["field_10"]},
    ...
}

# Iterate over flat files and append data to tables
for file in files:
    chunk = pd.read_table(file, chunksize=50000)
    for group, info in group_map.items():
        frame = chunk.reindex(columns=info["fields"], copy=False)
        store.append(group, frame, data_columns=info["dc"])

# Retrieve specific columns
selected_columns = ["field_1", "field_10"]
group_1 = "A"
group_2 = "B"
data = store.select_as_multiple([group_1, group_2], columns=selected_columns)

以上是Pandas 如何處理超出可用記憶體的大型資料集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn