熊猫内存错误

时间:2014-04-21 20:01:30

标签: python memory pandas

我有一个包含~50,000行和300列的csv文件。执行以下操作会导致Pandas(python)中出现内存错误:

merged_df.stack(0).reset_index(1)

数据框如下所示:

GRID_WISE_MW1   Col0    Col1    Col2 .... Col300
7228260         1444    1819    2042
7228261         1444    1819    2042

我正在使用最新的pandas(0.13.1),并且对于行数较少的数据帧(~2,000)不会出现错误

谢谢!

2 个答案:

答案 0 :(得分:4)

所以它需要我的64位Linux(32GB)内存,略低于2GB。

In [5]: def f():
       df = DataFrame(np.random.randn(50000,300))
       df.stack().reset_index(1)


In [6]: %memit f()
maximum of 1: 1791.054688 MB per loop

由于您没有指定。这根本不适用于32位(因为你通常不能分配一个2GB的连续块),但是如果你有合理的交换/内存应该可以工作。

答案 1 :(得分:2)

作为替代方法,您可以使用库“dask”,例如:

# Dataframes implement the Pandas API
import dask.dataframe as dd`<br>
df = dd.read_csv('s3://.../2018-*-*.csv')