【问题标题】:csv & xlsx files import to pandas data frame: speed issuecsv 和 xlsx 文件导入到 pandas 数据框:速度问题
【发布时间】:2013-04-17 11:06:40
【问题描述】:

从 xlsx 文件中读取数据(仅 20000 个数字)需要很长时间:

import pandas as pd
xlsxfile = pd.ExcelFile("myfile.xlsx")
data = xlsxfile.parse('Sheet1', index_col = None, header = None)

大约需要 9 秒。

如果我以 csv 格式保存相同的文件,则需要大约 25 毫秒:

import pandas as pd
csvfile = "myfile.csv"
data = pd.read_csv(csvfile, index_col = None, header = None)

这是 openpyxl 的问题还是我遗漏了什么?有其他选择吗?

【问题讨论】:

  • XLSX 的开销更多。一方面,它必须在解析之前解压缩。另一个原因是它是必须解析的 XML。 9 秒确实看起来相当高,但它慢很多倍是有充分理由的。
  • 是的,我明白了,但是 9 秒似乎有点太多了……
  • read_csv 是一段高度优化的c代码; excel是通过纯python库读取的

标签: python csv pandas xlsx openpyxl


【解决方案1】:

xlrd 支持 .xlsx 文件,而这个answer 表明至少支持 .xlsx 的 xlrd 测试版比 openpyxl 更快。

Pandas 的当前稳定版本 (11.0) 使用 openpyxl 处理 .xlsx 文件,但在下一个版本中已更改。如果你想试一试,你可以从GitHub下载开发版

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    相关资源
    最近更新 更多