【发布时间】:2017-10-06 17:33:33
【问题描述】:
我编写了一个简单的小脚本来读取和处理一个巨大的 CSV 文件(~150GB),每个循环读取 5e6 行,将其转换为 Pandas DataFrame,对其进行处理,然后继续读取接下来的 5e6 行。
尽管它完成了这项工作,但在每次迭代中,查找下一个要读取的行块需要更长的时间,因为它必须跳过更多的行。 我阅读了许多关于使用块(作为读取器迭代器)的答案,尽管一旦读取了块,我就需要连接块以创建一个 DataFrame(关于截断行和东西的各种问题),所以我不想走那条路。
是否可以使用某种光标来提醒 read_csv 函数从它停止的位置开始读取?
代码的主要部分如下所示:
while condition is True:
df = pd.read_csv(inputfile, sep=',', header = None, skiprows = sr, nrows = 5e6)
# do something with df
sr = sr + 5e6
# if something goes wrong the condition turns False
【问题讨论】: