I have a csv file with ~50,000 rows and 300 columns. Performing the following operation is causing a memory error in Pandas (python):
merged_df.stack(0).reset_index(1)
The data frame looks like:
GRID_WISE_MW1 Col0 Col1 Col2 .... Col300
7228260 1444 1819 2042
7228261 1444 1819 2042
I am using latest pandas (0.13.1) and the bug does not occur with dataframes with fewer rows (~2,000)
thanks!
So it takes on my 64-bit linux (32GB) memory, a little less than 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
Since you didn't specify. This won't work on 32-bit at all (as you can't usually allocate a 2GB contiguous block), but should work if you have reasonable swap / memory.
As an alternative approach you can use the library "dask"
e.g:
# Dataframes implement the Pandas API
import dask.dataframe as dd`<br>
df = dd.read_csv('s3://.../2018-*-*.csv')