Python 内存错误:屏蔽不太大的数据帧抛出错误

Python 内存错误:屏蔽不太大的数据帧抛出错误,python,pandas,dataframe,memory,Python,Pandas,Dataframe,Memory,尝试使用掩码为包含3列的4M行表选择值时出现内存错误 当我运行df.memory_usage().sum()时,它返回我173526080,这相当于138820864 gb,我有32gb的RAM。因此,它似乎不应该耗尽RAM,因为以前没有消耗大量RAM的代码 此方法适用于具有相同4M行的早期版本的代码 我运行的代码是: x = df[exit_point] > 0 print(df[x].shape) 我得到的错误是: File "C:\Users\joaoa\AppData\Loc

尝试使用掩码为包含3列的4M行表选择值时出现内存错误

当我运行
df.memory_usage().sum()
时,它返回我
173526080
,这相当于
138820864 gb
,我有32gb的RAM。因此,它似乎不应该耗尽RAM,因为以前没有消耗大量RAM的代码

此方法适用于具有相同4M行的早期版本的代码

我运行的代码是:

x = df[exit_point] > 0
print(df[x].shape)
我得到的错误是:

  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\frame.py", line 2133, in __getitem__
    return self._getitem_array(key)
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\frame.py", line 2175, in _getitem_array
    return self._take(indexer, axis=0, convert=False)
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 2143, in _take
    self._consolidate_inplace()
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 3677, in _consolidate_inplace
    self._protect_consolidate(f)
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 3666, in _protect_consolidate
    result = f()
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 3675, in f
    self._data = self._data.consolidate()
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\internals.py", line 3826, in consolidate
    bm._consolidate_inplace()
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\internals.py", line 3831, in _consolidate_inplace
    self.blocks = tuple(_consolidate(self.blocks))
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\internals.py", line 4853, in _consolidate
    _can_consolidate=_can_consolidate)
  File "C:\Users\joaoa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\internals.py", line 4876, in _merge_blocks
    new_values = new_values[argsort]
MemoryError
我不知道如何开始调试这个。如果有任何线索和提示,我们将不胜感激。

也许这有助于:

[1] 导入文件时使用low_memory=False参数。例如:

df = pd.read_csv('filepath', low_memory=False)
[2] 导入文件时使用dtype参数

[3] 如果您使用Jupyter笔记本:内核>重启并清除输出


希望这有帮助

试着去做块