当前位置: 首页 > 面试题库 >

如何部分读取巨大的CSV文件?

鲁熙云
2023-03-14
问题内容

我有一个很大的csv文件,因此无法将它们全部读入内存。我只想阅读和处理其中的几行内容。所以我正在Pandas中寻找一个可以处理此任务的函数,基本的python可以很好地处理此任务:

with open('abc.csv') as f:
    line = f.readline()
    # pass until it reaches a particular line number....

但是,如果我在熊猫中这样做,我总是会读第一行:

datainput1 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
datainput2 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )

我正在寻找一些更简单的方法来处理熊猫中的这项任务。例如,如果我想读取1000到2000的行。如何快速执行此操作?

我想使用熊猫,因为我想将数据读入数据框。


问题答案:

用途chunksize

for df in pd.read_csv('matrix.txt',sep=',', header = None, chunksize=1):
    #do something

要回答第二部分,请执行以下操作:

df = pd.read_csv('matrix.txt',sep=',', header = None, skiprows=1000, chunksize=1000)

这将跳过前1000行,然后仅读取接下来的1000行,从而为您提供1000-2000行,不清楚是否需要包含端点,但是您可以摆弄数字以获得所需的内容。



 类似资料:
  • 问题内容: 我目前正在尝试从Python 2.7中的.csv文件中读取数据,该文件最多包含100万行和200列(文件范围从100mb到1.6gb)。对于少于300,000行的文件,我可以(非常缓慢地)执行此操作,但是一旦超过该行,就会出现内存错误。我的代码如下所示: 在getstuff函数中使用else子句的原因是,所有符合条件的元素都将一起列在csv文件中,因此当我经过它们时,为了节省时间,我离

  • 问题内容: 我目前正在尝试从Python 2.7中的.csv文件中读取数据,该文件最多包含100万行和200列(文件范围从100mb到1.6gb)。对于少于300,000行的文件,我可以(非常缓慢地)执行此操作,但是一旦超过该行,就会出现内存错误。我的代码如下所示: 在getstuff函数中使用else子句的原因是,所有符合条件的元素都将一起列在csv文件中,因此,经过它们以节省时间时,我离开了循

  • 我的问题是: > 如何使其与较大的文件一起工作? 有什么办法能让它快一点吗? 我的电脑有8GB的RAM,运行64位Windows 7,处理器是3.40GHz(不确定你需要什么信息)。

  • 我想用Java读取一个巨大的文件。它包括75,000,000条线路。问题是,即使我使用的是最大和限制,但我得到的是:`java.lang.OutOfMemoryError(GC开销限制已超过),它显示这一行导致错误: 我做了一些测试,看到我能很好地阅读15,000,000行。因此我开始使用这种代码: 这里,它很好地写出了第一个15,000,000行,但是在第二个试验中,这再次给出了相同的错误,尽管

  • 问题内容: 我有一个很大的CSV文件(15 Gb),我需要从中读取大约一百万行。据我所见-并实现-Python中的CSV实用程序仅允许在文件中顺序迭代。 将所有文件读入内存以使用一些随机选择非常耗费内存,并且遍历所有文件并丢弃一些值并选择其他值非常耗时,因此, 无论如何 , 是否有必要从CSV文件中选择一些随机行,只读那行? 我尝试没有成功: CSV文件示例: 问题答案: 正如@AndreBoos

  • 问题内容: 我在具有1GB RAM的Mac Mini上使用Python 2.6。我想阅读一个巨大的文本文件 因此,文件中的每一行都由两个逗号分隔的整数值组成的元组。我想阅读整个文件,并根据第二列对其进行排序。我知道,我可以进行排序而无需将整个文件读入内存。但我认为对于500MB的文件,由于我有1GB的可用空间,因此仍应该可以在内存中进行处理。 但是,当我尝试读取文件时,Python似乎分配了比磁盘