尝试读取大型 csv 文件并连接太慢

问题描述 投票:0回答:1

我正在尝试读取一个大的 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个多小时还没完成。
内存使用量也在不断增长

有没有办法更快更有效地连接这个阅读器文件?

python pandas csv concatenation
1个回答
0
投票

首先使用

conda install dask
安装 Dask,可以更快地读取文件。然后通过
import dask
导入它。您还需要导入pathlib的路径,并传递文件名,如
Path('filename')
。然后您可以像这样读取文件:
dask.dataframe.read_csv(filename)
。或者,您可以将其转换为 pickle 文件,使用
pd.read_pickle(filename)
读取它,但转换它需要使用 pandas 读取它,然后使用 pandas 进行转换。

© www.soinside.com 2019 - 2024. All rights reserved.