我有一个包含~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)不会出现错误
谢谢!
答案 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')