我有 2 个文件夹,每个文件夹包含 1507 个 csv 文件,我使用以下代码使用列表理解将每个文件保存为极坐标数据框:
bdsim=[pl.read_csv(x, schema_overrides = {"X0.6": pl.Float64}) for x in simpaths]
bdens=[pl.read_csv(x, schema_overrides = {"ridge_reg": pl.Float64}) for x in enspaths]
simpaths
和 enspaths
是每个 csv 文件的路径列表,我将每个极坐标数据帧保存在名为 bdsim 和 bdens 的列表中。所有文件都在我的谷歌驱动器上,我正在使用谷歌colab。目前,这两条线路运行时间需要30多分钟。怎样才能提高效率?
我尝试过 for 循环,但这不是一种非常 Pythonic 的方法
不,可能不是。
列表理解并不占用这里的时间。使用 3000 个对象进行列表理解非常快,在 30 分钟的工作中完全不会被注意到(并且对象的大小对于理解的速度并不重要,因为列表操作对数据帧的引用进行操作,它们不不要洗牌所有数据)
一直占用的时间是将 csv 文件实际读取到极坐标数据帧中,这只能是因为数据量很大。您可以尝试从 csv 切换到不太易于使用但更内存友好的格式。我建议你研究一下(增加实施的难度)
我过去曾使用过所有这些方法进行数据分析。特别是对于使用 jupyter 进行数据分析,如果您的数据很少更改,我会添加以下内容,这是迄今为止最简单的: