有没有更有效的方法将10,000个excel行加载到python中?

use*_*919 0 python excel performance module

我正在从excel加载数据以填充对象,即教师(lastName,firstName,user_ID).然后将这些教师对象放入列表中,进行进一步的操作和分析(即查找匹配和其他模式).我这样做的方法是使用xlrd模块从excel加载数据.

for row in range(11) :
    lastName = sheet1.cell_value(row,3)
    firstName = sheet1.cell_value(row,1)
    userID = sheet1.cell_value(row,0)
    profList.append(tempProf)
Run Code Online (Sandbox Code Playgroud)

因此,这种方法让我的计算机只用了20秒即可完成12行,我需要这样做10,000次.我的问题是,是否有另一种方式以更有效的方式加载这样的数据?我愿意接受范围界定,所以如果这个问题听起来很愚蠢,我很乐意听到替代方案,谢谢

Jam*_*lls 5

另一种方法是将Excel电子表格转换为CSV.

然后使用标准库中的Python csv模块.

from csv import reader as csv_reader

with open("data.csv", "r") as fd:
    for row in csv_reader(fd):
        userid, firstname, lastname = row
Run Code Online (Sandbox Code Playgroud)

说明:

  1. csv.reader对象导入为csv_reader(我的个人约定).
  2. 使用上下文管理器和Python内置,打开data.csv以便"r"将生成的文件对象放入其中fd.
  3. 现在迭代由csv_reader(file_object)我们提供的CSV库处理提供的数据行.
  4. 假设每一行都是形式userid, firstname, lastname,因此我们可以将列表解压缩row到参考/变量中.请参阅:元组和序列

另请注意:如果您的数据包含Unicode字符,您将需要安装并使用Python Package Index(PyPi)中的unicodecsv第三方库.