【发布时间】:2019-07-25 08:17:25
【问题描述】:
我正在尝试读取一个大的 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 多个小时,但尚未完成。
ram 内存使用量也在不断增长
有没有办法更快更有效地连接这个阅读器文件?
【问题讨论】:
-
我对 pandas 了解不多,但对齐数据帧显然会带来很大的加速:stackoverflow.com/questions/31860671/…
-
我认为您需要将 dask 用于 100GB CSV,或者将其加载到 SQL 中以进行数据准备。最近自己遇到了一个类似的问题。
标签: python pandas concatenation concat read.csv