首頁 >後端開發 >Python教學 >如何有效處理 Pandas 中的大型 DataFrame 以避免記憶體錯誤?

如何有效處理 Pandas 中的大型 DataFrame 以避免記憶體錯誤?

Susan Sarandon
Susan Sarandon原創
2024-10-26 01:24:28345瀏覽

How can I effectively handle large DataFrames in Pandas to avoid memory errors?

Pandas - 將大型 DataFrame 切塊

大型 DataFrame 可能很難使用,尤其是在透過函數傳遞它們時。使用大型 DataFrame 時可能會出現記憶體錯誤,將它們切成較小的區塊可以幫助緩解此問題。

將 DataFrame 切成較小的區塊:

  1. 清單理解: 利用清單理解建立較小 DataFrame 的清單。
<code class="python">n = 200000  # chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>
  1. Numpy array_split: 利用 numpy 的 array_split 函式來拆分 DataFrame。
<code class="python">list_df = np.array_split(df, math.ceil(len(df)/n))</code>

要存取區塊,只需索引清單即可:

<code class="python">list_df[0]
list_df[1]
etc...</code>

透過AcctName 拆分DataFrame:

<code class="python">list_df = []

for n, g in df.groupby('AcctName'):
    list_df.append(g)</code>

拆分DataFrame後分成區塊,它可以透過函數傳遞,然後使用pd.concat 重新組裝成單一DataFrame。

以上是如何有效處理 Pandas 中的大型 DataFrame 以避免記憶體錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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