Pandas:当使用chunksize选项读取csv时如何从csv文件的末尾跳过n行

问题描述

我需要处理一个较大的csv文件(〜2GB)。由于内存不足的限制,我正在使用chunksize选项一次在内存中加载一块csv,而不是加载整个csv文件。我需要标识csv的最后一块,并从该块中跳过n行。 在这一点上,我不确定如何实现这一点。 任何帮助表示赞赏。 预先感谢!

解决方法

要执行此操作,您需要知道文件的大小,然后将其除以块大小,然后以这种方式确定最后一个块。不幸的是,您需要浏览整个文件以找出总数。但是,您可以通过较小的内存来做到这一点。

f = open(file)
i = -1
for i,l in enumerate(f):
     pass

在此循环结束时,i+1是文件的大小。使用Dask并行处理大文件是另一种选择,但是我不确定是否可以获取文件的最后一块。