我有一个csv文件,大约有50000行和300列。执行以下操作导致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),行数较少的数据帧(~2000)不会出现错误
谢谢!
所以它占用了我的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的连续块),但如果你有合理的交换/内存,这应该会起作用。
作为一种替代方法,您可以使用库"dask"
例如:
# Dataframes implement the Pandas API
import dask.dataframe as dd`<br>
df = dd.read_csv('s3://.../2018-*-*.csv')