Python 2.7 dask.async.MemoryError打开到\u csv
在尝试使用dask处理较大数据集中相对较小的子集时,我收到以下错误消息。我在运行dask的GridSearchCV实现时第一次收到这个错误消息。但是,当我试图通过将数据帧写入磁盘来解决它时。下面是错误消息,后面是我试图运行的代码 回溯(最近一次呼叫最后一次): 文件“C:\Program Files(x86)\JetBrains\PyCharm 2017.1\helpers\pydev\pydevd.py”,第1578行,在 globals=debugger.run(setup['file'],None,None,is_模块) 文件“C:\Program Files(x86)\JetBrains\PyCharm 2017.1\helpers\pydev\pydevd.py”,第1015行,正在运行 pydev_imports.execfile(文件、全局、局部)#执行脚本 文件“C:/Users/Evan/Git/Data\u Analysis\u for\u Exp/SEER Data/SEER\u ML.py”,第73行,在 data.to_csv('data_frame.*.csv')) 文件“C:\Anaconda2\lib\site packages\dask\dataframe\core.py”,第957行,输入到csv 返回到_csv(self,filename,**kwargs) 文件“C:\Anaconda2\lib\site packages\dask\dataframe\io\csv.py”,第445行,输入到\u csv 延迟(值).compute(get=get) 文件“C:\Anaconda2\lib\site packages\dask\base.py”,第95行,在compute中 (结果,)=compute(自我,遍历=False,**kwargs) 文件“C:\Anaconda2\lib\site packages\dask\base.py”,第202行,在compute中 结果=获取(dsk、键、**kwargs) get中第76行的文件“C:\Anaconda2\lib\site packages\dask\threaded.py” **kwargs) 文件“C:\Anaconda2\lib\site packages\dask\async.py”,第500行,在get\u async中 raise(远程_异常(res,tb)) dask.async.MemoryError: 回溯 文件“C:\Anaconda2\lib\site packages\dask\async.py”,第266行,在执行任务中 结果=_执行_任务(任务、数据) 文件“C:\Anaconda2\lib\site packages\dask\async.py”,第247行,在执行任务中 返回函数(*args2) 文件“C:\Anaconda2\lib\site packages\dask\dataframe\io\csv.py”,第55行,文本为pandas\u read\u df=读卡器(bio,**kwargs) 解析器中的文件“C:\Anaconda2\lib\site packages\pandas\io\parsers.py”,第646行 返回读取(文件路径或缓冲区,kwds) 文件“C:\Anaconda2\lib\site packages\pandas\io\parsers.py”,第401行,已读 data=parser.read() 文件“C:\Anaconda2\lib\site packages\pandas\io\parsers.py”,第957行,已读 df=数据帧(列=列,索引=索引) 文件“C:\Anaconda2\lib\site packages\pandas\core\frame.py”,第266行,位于init mgr=self.\u init\u dict(数据、索引、列、数据类型=dtype) 文件“C:\Anaconda2\lib\site packages\pandas\core\frame.py”,第402行,在_init_dict中 将_arrays_返回给_mgr(数组、数据名、索引、列、dtype=dtype) 文件“C:\Anaconda2\lib\site packages\pandas\core\frame.py”,第5408行,在\u arrays\u to \u mgr中 从阵列(阵列、阵列名称、轴)返回创建块管理器 文件“C:\Anaconda2\lib\site packages\pandas\core\internals.py”,第4262行,位于从数组创建\u块\u管理器\u中 块=形成块(数组、名称、轴) 文件“C:\Anaconda2\lib\site packages\pandas\core\internals.py”,第4331行,格式为\u块 浮动块=\u多块化(浮动项) 文件“C:\Anaconda2\lib\site packages\pandas\core\internals.py”,第4408行,在多块化中 值,位置=\堆栈\数组(列表(tup\块),数据类型) 文件“C:\Anaconda2\lib\site packages\pandas\core\internals.py”,第4451行,在堆栈数组中 堆叠=np.空(形状,dtype=dtype)Python 2.7 dask.async.MemoryError打开到\u csv,python-2.7,dask,Python 2.7,Dask,在尝试使用dask处理较大数据集中相对较小的子集时,我收到以下错误消息。我在运行dask的GridSearchCV实现时第一次收到这个错误消息。但是,当我试图通过将数据帧写入磁盘来解决它时。下面是错误消息,后面是我试图运行的代码 回溯(最近一次呼叫最后一次): 文件“C:\Program Files(x86)\JetBrains\PyCharm 2017.1\helpers\pydev\pydevd.py”,第1578行,在 globals=debugger.run(setup['file'],
我注意到您加载了所有列,然后在继续之前删除了一些列-将
usecols
传递到read\u csv
而从不将它们读入是否有意义?另外,您是否可以指定加载的所有数据类型,而不是执行astype
?最后,您可以尝试在read\u csv
中减小blocksize
。谢谢您的建议。我试过了,但仍然有一个记忆错误。因此,我将在确保我的64位Python解释器及其依赖项都是最新的之后再试一次。作为补充:我检查了我的可用RAM,发现我有大约4GB(略多于4GB)的可用RAM,我正在处理的样本大小约为200MB,因此我不确定问题出在哪里。我注意到您加载了所有列,然后在继续之前删除了一些列-将usecols
传递到read\u csv
并且从不读取它们有意义吗?另外,您是否可以指定加载的所有数据类型,而不是执行astype
?最后,您可以尝试在read\u csv
中减小blocksize
。谢谢您的建议。我试过了,但仍然有一个记忆错误。因此,我将在确保我的64位Python解释器及其依赖项等是最新的之后再试一次。作为附录:我检查了我的可用RAM,发现我有大约4GB(略多于4GB)的可用RAM,并且我正在使用的示例大小约为200MB,因此我不确定问题是什么。
data = dataframe.read_csv("Data_Set_for_ML.csv", dtype={'colx': float, 'coly': float,'colz': float})
targets = data['target_col']
drop_these_too = ['target_col', "related_col1", "PID", "related_col2"]
drops = [key for key in list(list_of_features) if key not in
list(selected_features) and key not in drop_these_too]
data = data.drop(drops, axis=1)
for col in list(data.columns):
data[col].astype(float)
data.fillna(-9)
data.to_csv('data_frame_*.csv')