在200 GB RAM工作站上读取14 GB csv文件时Pandas出错

2024-04-28 15:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码生成文件的家庭id。然后我将分析每个家庭单独。在

import pandas as pd
data = pd.read_csv("110homes.csv")
for i in (np.unique(data['dataid'])):
    print i
    d1 = pd.DataFrame(data[data['dataid']==i])
    k = str(i)
    d1.to_csv(k + ".csv")

但是,我得到了这个错误。机器有200 GB RAM,并且显示内存错误:

^{pr2}$

Tags: 文件csvimportidpandasforreaddata
1条回答
网友
1楼 · 发布于 2024-04-28 15:19:09

RAM中的数据比磁盘上的数据占用更多的空间。如果没有看到您的110homes.csv文件,就不可能知道细节,但是假设它每行包含10个浮点数,比如:0.0,1.0,2.0,...。在CSV中,每个字节取3个字节+1个字节作为分隔符。在Python中,每个字节取8个字节(在64字节机器上)作为浮点,每个Unicode字符加上2个字节(另外8个字节),再加上8个字节作为字符串长度,每个指针加上8个字节,再加上每行的字节数,等等

可以这样想:在64位机器上,指针、本机int或本机浮点的最小大小是8字节。每个字段需要多个,每行需要多个。与磁盘相比,RAM占用15倍并没有什么不寻常的。在

做一个简单的测试:获取文件前10%的行,并在python处理过程中通过top来监视它。看看它用了多少内存。它至少使用20GB吗?在

相关问题 更多 >