这是我的代码生成文件的家庭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:
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吗?在相关问题 更多 >
编程相关推荐