首页 > 解决方案 > 是否有更快的方法来写入或读取大约 100 万行的 pandas 数据帧

问题描述

我正在努力具体说明我的问题。我有一个包含 200 多列和 100 万多行的数据框。如果我记录正确,我正在将它读取或写入一个 excel 文件,这需要超过 45 分钟。

df = pd.read_csv("data_file.csv", low_memory=False, header=0, delimiter = ',', na_values = ('', 'nan'))
df.to_excel('data_file.xlsx', header=0, index=False)

我的问题-无论如何我们可以使用 pandas 数据框更快地读取或写入文件,因为这只是一个文件示例。我还有很多这样的文件

标签: pythonpandasdataframemachine-learningspyder

解决方案


两个想法:

  • Investigate Dask,它提供了一个DataFrame可以跨多个 CPU 或集群分布处理大型数据集的 Pandas。如果您的性能完全受 IO 限制,很难说您将获得多大程度的加速,但肯定值得研究。快速查看Dask 用例以了解其功能。

  • 如果您要重复读取相同的 CSV 输入文件,那么我建议将它们转换为 HDF,因为读取 HDF 比读取等效的 CSV 文件快几个数量级。就像将文件读入 aDataFrame然后将其写回一样简单DataFrame.to_hdf().显然,如果您可以将此转换作为一次性练习,然后在运行代码时从那时起使用 HDF 文件,这只会有帮助。

问候,伊恩


推荐阅读