首页  >  文章  >  后端开发  >  如何有效处理 Pandas 中的大型 DataFrame 以避免内存错误?

如何有效处理 Pandas 中的大型 DataFrame 以避免内存错误?

Susan Sarandon
Susan Sarandon原创
2024-10-26 01:24:28271浏览

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