使用 Pandas 读取大型文本文件 [重复]

Posted

技术标签:

【中文标题】使用 Pandas 读取大型文本文件 [重复]【英文标题】:Reading large text files with Pandas [duplicate] 【发布时间】:2014-06-18 03:54:25 【问题描述】:

我一直在尝试使用 read_csv 函数使用 Pandas 读取一些大型文本文件(大小约为 1.4GB - 2GB),但无济于事。以下是我正在使用的版本:

Python 2.7.6 Anaconda 1.9.2(64 位)(默认,2013 年 11 月 11 日,10:49:15)[MSC v.1500 64 位 (AMD64)] IPython 1.1.0 熊猫 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 内存?在我的机器上,Python 需要大约 5GB 的峰值才能使用 pd.read_csv() 读取 2.9 GB 的 csv @SaulloCastro 我的机器安装了 8GB。它应该能够处理这样的文件大小,因为大多数已安装的 RAM 都可用,我没有运行其他任何东西。 【参考方案1】:

在发布此问题一段时间后,here 提供了类似问题的解决方案。基本上,它建议通过执行以下操作来读取chunks 中的文件:

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

您应该根据您机器的能力指定chunksize 参数(即确保它可以处理该块)。

【讨论】:

什么是10 ** 6,请各位小白们赐教??此外,这并没有给出将块存储到数据帧中并在之后连接所有此类数据帧的解决方案。 将 10 提升到 6 次方是直观的。什么是KB,MB,文件中的行,是什么??? 这里可能会提到一个更具解释性和有用的链接:pythondata.com/working-large-csv-files-python 哦,对不起,没有让你完全正确。它是每个块的行数。 我建议您检查目标欺骗问题,因为它为您提供相关且有用的信息 :) 也感谢您的链接,会检查一下

以上是关于使用 Pandas 读取大型文本文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pandas 或其他方法比较大型 (~40GB) 文本数据

试图在python中读取一个非常大的文本列表[重复]

如何读取非常大的 CSV 的一小部分行。 Pandas - 时间序列 - 大型数据集

对于大型文本数据,如何使 pandas df 列中的文本处理更快?

Python / 使用 Pandas 从文本文件中读取和分组数据

通过网络读取和解析大型文本文件的最佳方式是啥?