我目前正在使用Kaggle上的Rotten Tomatoes dataset,同时使用pandasDataFrame()
操作数据。在
我已经实现了CountVectorizer()
,从sklearn中提取特征(大小为5000)。然后,我将10万行功能和标签保存到.csv。更准确地说,.csv总共有100k行和5001列。
它的大小大约是1gb的内存。在
当我试图阅读.csv时,问题出现了:
pd.read_csv('train.csv', header=0,
delimiter=",", engine='c', na_filter=False, dtype=np.int64)
CSV
解析器使用了太多RAM。我的系统有8gb的内存,这显然是不够的。在
有没有办法减少RAM的使用?我并不局限于熊猫图书馆。在
您可以尝试在
pandas.read_csv
中使用chunksize
选项。它允许您成批处理数据,避免一次将所有数据加载到内存中。在处理每一批时,您可以去掉任何不必要的列,并将数据保存到一个新的、更细的对象中,您可以将其放入内存中。示例如下:在这个例子中,每个区块是50000条记录,格式是pandas数据帧。然后迭代50000条记录的每个块,在这里可以对每个块进行处理,并将处理后的数据帧附加到一个新对象(
slim_data
)上,然后将所有块连接在一起,形成一个可以在建模中使用的最终数据帧。在重申一下,只有在处理每批数据时,您正在删除数据元素或以更有效的方式表示数据元素,否则您将再次遇到内存问题,否则,上述操作才有效。然而,这将使您避免不得不同时将所有数据加载到内存中。在
相关问题 更多 >
编程相关推荐