迭代器遍历Excel文件
我有一些数据存储在Excel表格( .xlsx
)中,我的当前Python脚本将它们读入内存中并使用它们进行计算。 我会用一个例子来解释我的脚本。
假设我的excel文件在特定列下有这样的数据: a = [1,2,3,4,5]
。
我正在使用pandas( pd.read_excel()
)读取整个内存到内存中,并运行我自己的迭代器函数来获取:
a0 = [1,2,3,4,5] a1 = [5,1,2,3,4] a2 = [4,5,1,2,3]
等等。 基本上我把每个元素都移动了一些整数。 a0, a1
和a2
在这里显示为列表,但它们是迭代器对象,我不存储它们。
正如你在这里注意到的, a0
总是和a0
相同a
,我不需要在内存中存储,因为我只需要它一次,这是a0
所做的。 所以我想要做的是有某种迭代器对象来迭代excel文件直接捕获a0, a1
和a2
,就好像我是先导入然后迭代a0, a1, a2
遍历a
。
我试图做这样的事情的原因是因为,我的脚本用于计算的时间比从Excel导入数据所需的时间短。 所以为了增加我的脚本的性能,我需要find一种方法来遍历Excel,而不是将数据保存到内存中。 我将不胜感激任何帮助。
此外,我的评论:如果pandas
或其他一些图书馆readThisCell()
的function,这将使我容易做我自己的Excel迭代器。 但我不知道我的select与pandas或任何其他图书馆。
我没有pandas read_excel
函数的经验,但是我们用openpyxl取得了很好的成功。 该库允许您定义指向特定工作表的variables,然后遍历该variables,如下所示(直接从他们的教程中拉出):
from openpyxl import load_workbook wb = load_workbook(filename='large_file.xlsx', read_only=True) ws = wb['big_data'] # ws is now an IterableWorksheet for row in ws.rows: for cell in row: print(cell.value)