【发布时间】:2021-08-15 20:10:41
【问题描述】:
环境: 蟒蛇:3.7.10.final.0, 蟒蛇位:64, 操作系统:Windows,64GB 内存, 操作系统版本:10, 版本:10.0.19041, 熊猫:1.2.4
在一个简单的打印语句之后我有一个非常简单的读取语句,并且有条件检查我是否确实要读取整个文件...
%timeit csvDataFrame = pd.read_csv(fc.selected, sep=",", header='infer', na_values ='?', skiprows=csvSkipRows, dtype=desiDtypesDict, comment = '#', iterator=False)
其中 fc.selected 是大约 200 万行(磁盘上 524MB)的 CSV 的完整路径; csvSkipRows = [] 和 desiDtypesDict 是数据集中列的类型字典。
如果我还添加例如 CSV 读取工作正常chunksize = 10,并对结果进行迭代,所以我对参数很有信心,但是当我尝试一次读取整个文件时
- %timeit 告诉我它需要大约 6 秒/循环并且有 7 个循环
- csvDataFrame 不是数据帧,而是 TextFileReader
即使迭代器 = False 在这种环境下,Python 访问大量内存通常没有问题,因此:
为什么会发生这种情况,以及如何一次读取 CSV?
【问题讨论】:
标签: pandas jupyter-notebook jupyter-lab timeit