Я пытаюсь создать гексбиновый график из двух столбцов достаточно небольшого DataFrame, менее двух миллионов строк. Согласно диспетчеру задач, на этой машине доступно 24,9 ГБ памяти, но pandas не удается выделить 138 МБ:
File "c:/Users/user/ka_stats/ka_stats.py", line 20, in <module>
stats_130B.plot.hexbin("frame","v")
File "C:\Users\user\my-env\lib\site-packages\pandas\plotting\_core.py", line 1588, in hexbin
return self(kind="hexbin", x=x, y=y, C=C, **kwargs)
File "C:\Users\user\my-env\lib\site-packages\pandas\plotting\_core.py", line 792, in __call__
return plot_backend.plot(data, x=x, y=y, kind=kind, **kwargs)
File "C:\Users\user\my-env\lib\site-packages\pandas\plotting\_matplotlib\__init__.py", line 61, in plot
plot_obj.generate()
File "C:\Users\user\my-env\lib\site-packages\pandas\plotting\_matplotlib\core.py", line 261, in generate
self._compute_plot_data()
File "C:\Users\user\my-env\lib\site-packages\pandas\plotting\_matplotlib\core.py", line 401, in _compute_plot_data
numeric_data = data.select_dtypes(include=include_type, exclude=exclude_type)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\frame.py", line 3476, in select_dtypes
return self.iloc[:, keep_these.values]
File "C:\Users\user\my-env\lib\site-packages\pandas\core\indexing.py", line 1762, in __getitem__
return self._getitem_tuple(key)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\indexing.py", line 2080, in _getitem_tuple
retval = getattr(retval, self.name)._getitem_axis(key, axis=axis)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\indexing.py", line 2125, in _getitem_axis
return self._getbool_axis(key, axis=axis)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\indexing.py", line 1784, in _getbool_axis
return self.obj._take_with_is_copy(inds, axis=axis)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\generic.py", line 3409, in _take_with_is_copy
result = self.take(indices=indices, axis=axis, **kwargs)
File "C:\Users\user\my-env\lib\site-packages\pandas\core\generic.py", line 3394, in take
new_data = self._data.take(
File "C:\Users\user\my-env\lib\site-packages\pandas\core\internals\managers.py", line 1393, in take
return self.reindex_indexer(
File "C:\Users\user\my-env\lib\site-packages\pandas\core\internals\managers.py", line 1257, in reindex_indexer
new_blocks = self._slice_take_blocks_ax0(indexer, fill_tuple=(fill_value,))
File "C:\Users\user\my-env\lib\site-packages\pandas\core\internals\managers.py", line 1350, in _slice_take_blocks_ax0
blk.take_nd(
File "C:\Users\user\my-env\lib\site-packages\pandas\core\internals\blocks.py", line 1290, in take_nd
new_values = algos.take_nd(
File "C:\Users\user\my-env\lib\site-packages\pandas\core\algorithms.py", line 1657, in take_nd
out = np.empty(out_shape, dtype=dtype)
MemoryError: Unable to allocate 138. MiB for an array with shape (11, 1648940) and data type float64
Нужно ли увеличивать размер кучи? Возможно, это проблема с venv?