我正在尝试读取一个大的 csv 文件(超过 100 GB)
我找到了使用 chunksize 选项读取大型 csv 文件的方法
%%time
import time
filename = "../code/csv/file.csv"
lines_number = sum(1 for line in open(filename))
lines_in_chunk = 100# I don't know what size is better
counter = 0
completed = 0
reader = pd.read_csv(filename, chunksize=lines_in_chunk)
这部分速度更快
但问题是串联
%%time
df = pd.concat(reader,ignore_index=True)
花了4个多小时还没完成。
内存使用量也在不断增长
有没有办法更快更有效地连接这个阅读器文件?
首先使用
conda install dask
安装 Dask,可以更快地读取文件。然后通过import dask
导入它。您还需要导入pathlib的路径,并传递文件名,如Path('filename')
。然后您可以像这样读取文件:dask.dataframe.read_csv(filename)
。或者,您可以将其转换为 pickle 文件,使用 pd.read_pickle(filename)
读取它,但转换它需要使用 pandas 读取它,然后使用 pandas 进行转换。