首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫pd.read_csv不支持大于900‘t的csv文件

问熊猫pd.read_csv不支持大于900‘t的csv文件
EN

Stack Overflow用户
提问于 2017-03-28 06:40:11
回答 2查看 2.7K关注 0票数 2

我的服务器有8GB的内存,我使用熊猫read_csv函数将csv文件读取到一个dataframe,但是对于大于900 My的csv大小,它是作为“挂掉”执行的。

请任何人帮我处理这件事。我附加了我的meminfo,以获得关于如何清除服务器内存信息图像上的内存的建议。

EN

回答 2

Stack Overflow用户

发布于 2017-03-28 07:30:01

pandas可以返回大型文件的迭代器。

代码语言:javascript
复制
import pandas as pd

foo = pd.read_csv('bar.csv', iterator=True, chunksize=1000)

这将返回一个迭代器。然后,可以使用for循环对数据块应用操作。因此,它不会立即将整个文件读入内存。块大小是每个块的行数。

会是这样的:

代码语言:javascript
复制
for chunk in foo:
    # do something with chunk

编辑:据我所知,也必须在块中应用unique之类的函数。

代码语言:javascript
复制
import numpy as np
unique_foo = []
for i in df:
    unique_foo.append(i['foo'].unique())

unique_foo = np.unique(unique_eff)
票数 4
EN

Stack Overflow用户

发布于 2017-03-28 07:29:09

(您应该更加具体地说明您正在键入的代码,以及您收到的错误类型。)

如果pandas没有处理太大的文件,则应该恢复到更基本的csv包。而且,如果您觉得这样更舒服,仍然可以在DataFrame中进行导入。

类似于:

代码语言:javascript
复制
with open("file.csv", 'rb') as csv_file:
reader = csv.reader(csv_file, delimiter=',')
df = pd.DataFrame(list(reader))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43062324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档