使用Pandas读取大型文本文件

7

我一直在试图使用Pandas中的read_csv函数来读取几个大型文本文件(大小约为1.4GB-2GB),但一直没有成功。以下是我所使用的版本:

  • Python 2.7.6
  • Anaconda 1.9.2 (64位) (默认值,2013年11月11日,10:49:15) [MSC v.1500 64 bit (AMD64)]
  • IPython 1.1.0
  • Pandas 0.13.1

我尝试了以下方法:

df = pd.read_csv(data.txt')

当时出现了一个错误,Ipython 弹出消息: Kernel died, restarting

后来我尝试使用迭代器:

tp = pd.read_csv('data.txt', iterator = True, chunksize=1000)

我又遇到了Kernel died, restarting错误。

有什么想法吗?或者有其他读取大文本文件的方法吗?

谢谢!


我在我的电脑上使用与你相似的配置,没有遇到这个错误。你有多少RAM内存?在我的电脑上,使用pd.read_csv()读取一个2.9GB的csv文件时,Python需要大约5GB的峰值内存。 - Saullo G. P. Castro
1
@SaulloCastro 我的计算机已安装8GB内存。它应该能够处理这样的文件大小,因为大部分已安装的内存可用,并且我没有运行其他任何程序。 - marillion
1个回答

9

在这个问题发布之后,这里提供了一个类似问题的解决方案。基本上,它建议按照以下步骤读取chunks文件:

chunksize = 10 ** 6  # number of rows per chunk
for chunk in pd.read_csv(filename, chunksize=chunksize):
    process(chunk)

您应当根据计算机的性能(确保其可处理块)来指定chunksize参数。


10 ** 6是多少?请启发我们这些没有那么博学的人?此外,这并没有给出将块存储到数据框架中以及之后所有这些数据框架的串联解决方案。 - Rahul Saini
10的6次方听起来很直观,但是它是KB、MB、文件中的行数还是其他什么??? - Rahul Saini
这里可能需要提供一个更详细和有用的链接:https://pythondata.com/working-large-csv-files-python/ - Rahul Saini
哦,抱歉我理解有误。它是每个块的行数。 - DarkCygnus
我建议您检查目标重复问题,因为它对您有相关和有用的信息 :) 谢谢提供链接,我会去看看。 - DarkCygnus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接