【问题标题】:is there a Faster way to write or read in/to with pandas data frame with about 1 million row是否有更快的方法来写入或读取大约 100 万行的 pandas 数据帧
【发布时间】:2023-04-10 13:38:01
【问题描述】:

我正在努力具体说明我的问题。我有一个包含 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 数据框的文件,因为这只是一个文件示例。我还有很多这样的文件

【问题讨论】:

  • 尝试使用xlsxwriter 将您的文件直接从.csv 转换为.xlsx。
  • @theodoros:不,不,我的目的不同,我也必须对数据进行处理和建模,例如读取和写入。
  • 结帐羽毛。如果它可以用于应用程序,它将大大优化您的任务
  • 你能介绍一下羽毛吗

标签: python pandas dataframe machine-learning spyder


【解决方案1】:

两个想法:

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

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

问候, 伊恩

【讨论】:

    【解决方案2】:

    您正在使用的文件很大。如果您需要处理数据,那么您将无法真正解决冗长的读写时间。

    【讨论】:

      【解决方案3】:

      不要写入 xlsx,使用 csv,写入 xlsx 需要很长时间。 写入 csv。在我的带 SSD 的廉价笔记本电脑上需要一分钟。

      【讨论】:

      • 我认为这不能解决我的问题。我有业务需求。
      猜你喜欢
      • 1970-01-01
      • 2019-10-17
      • 2014-05-12
      • 1970-01-01
      • 2020-02-21
      • 2011-10-14
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多