我的服务器有8GB的内存,我使用熊猫read_csv函数将csv文件读取到一个dataframe,但是对于大于900 My的csv大小,它是作为“挂掉”执行的。
请任何人帮我处理这件事。我附加了我的meminfo,以获得关于如何清除服务器内存信息图像上的内存的建议。
发布于 2017-03-28 07:30:01
pandas可以返回大型文件的迭代器。
import pandas as pd
foo = pd.read_csv('bar.csv', iterator=True, chunksize=1000)这将返回一个迭代器。然后,可以使用for循环对数据块应用操作。因此,它不会立即将整个文件读入内存。块大小是每个块的行数。
会是这样的:
for chunk in foo:
# do something with chunk编辑:据我所知,也必须在块中应用unique之类的函数。
import numpy as np
unique_foo = []
for i in df:
unique_foo.append(i['foo'].unique())
unique_foo = np.unique(unique_eff)发布于 2017-03-28 07:29:09
(您应该更加具体地说明您正在键入的代码,以及您收到的错误类型。)
如果pandas没有处理太大的文件,则应该恢复到更基本的csv包。而且,如果您觉得这样更舒服,仍然可以在DataFrame中进行导入。
类似于:
with open("file.csv", 'rb') as csv_file:
reader = csv.reader(csv_file, delimiter=',')
df = pd.DataFrame(list(reader))https://stackoverflow.com/questions/43062324
复制相似问题