Python的硬件问题

时间:2018-09-18 13:00:09

标签: python

我正在使用python中的一个相对较大的csv文件。我正在使用pandas read_csv函数导入它。数据位于工作中的共享文件夹中,大约25GB。

我有2x8 GB RAM和Intel Core i5处理器,并且使用juypter笔记本。加载文件时,RAM监视将达到100%。它保持100%或96%的状态持续了几分钟,然后我的计算机时钟停止了,屏幕冻结了。即使我等待2个小时,我的计算机也无法使用,所以我必须重新启动。

我的问题是: 我需要拆分数据吗?这有帮助吗?还是笔记本电脑普遍存在性能问题?

非常感谢,这是我第一次使用如此大的数据集(我仍然认为25GB并不多)

3 个答案:

答案 0 :(得分:3)

对于大文件,大熊猫可以分块读取它们。

chunksize = 10 ** 6
for chunk in pd.read_csv(filename, chunksize=chunksize):
    process(chunk)

答案 1 :(得分:3)

查看string.Format中的documentation。有一个名为read_csv的参数。它指出:

  

行数:整数,默认为无

     

要读取的文件行数。对于读取大文件很有用

您可以循环遍历文件,一次只读取几行,这样就不会将整个文件加载到RAM中。

顺便说一句:使用类似的东西

nrows

一次只会将一行加载到内存中。

答案 2 :(得分:1)

您可能正在将所有数据加载到RAM中,从而分配了所有可用内存,从而迫使系统依靠交换内存(将临时数据写入磁盘,速度要慢得多)。

如果将数据拆分为适合内存的数据块,它将解决此问题。也许每个1 GB?