【发布时间】:2016-02-20 17:33:53
【问题描述】:
这是我通过家庭 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,它也显示内存错误:
data = pd.read_csv("110homes.csv")
File "/usr/lib/python2.7/site-packages/pandas/io/parsers.py", line 474, in parser_f
return _read(filepath_or_buffer, kwds)
File "/usr/lib/python2.7/site-packages/pandas/io/parsers.py", line 260, in _read
return parser.read()
File "/usr/lib/python2.7/site-packages/pandas/io/parsers.py", line 721, in read
ret = self._engine.read(nrows)
File "/usr/lib/python2.7/site-packages/pandas/io/parsers.py", line 1170, in read
data = self._reader.read(nrows)
File "pandas/parser.pyx", line 769, in pandas.parser.TextReader.read (pandas/parser.c:7544)
File "pandas/parser.pyx", line 819, in pandas.parser.TextReader._read_low_memory (pandas/parser.c:8137)
File "pandas/parser.pyx", line 1833, in pandas.parser._concatenate_chunks (pandas/parser.c:22383)
MemoryError
【问题讨论】:
-
与您的 MemoryError 无关,但请查看
df.groupby方法。这将使您阅读后的代码更加优雅 -
您使用的是 32 位 Python 吗?它有 4G 限制——请参阅 pandas-memory-error
-
import struct print struct.calcsize("P") * 8 我运行了这个命令,它显示 64。所以我猜这不是问题
-
为什么问题被否决?如果你不能回答这个问题,那么至少不要投反对票。有人无缘无故地对问题投反对票是荒谬的。这是一个合法的问题。
标签: python memory pandas large-files