Pandas шестнадцатеричный график вызывает ошибку памяти, даже если доступно много - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать гексбиновый график из двух столбцов достаточно небольшого 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...