簡體   English   中英

迭代 Excel 文件的迭代器

[英]Iterator to iterate over Excel file

我有一些數據存儲在 Excel 表( .xlsx )中,我當前的 Python 腳本將它們讀入內存並用於計算。 我將用一個例子來解釋我的腳本。

假設我的 excel 文件在特定列下包含此數據: a = [1,2,3,4,5]

我正在使用熊貓( pd.read_excel() )將整個內容讀入內存並運行我自己的迭代器函數以獲得:

a0 = [1,2,3,4,5]
a1 = [5,1,2,3,4]
a2 = [4,5,1,2,3]

等等。 基本上,我將每個元素移動了一些整數。 a0, a1a2在這里顯示為列表,但它們是迭代器對象,我不存儲它們。

當你看到這里, a0總是一樣的a ,我不真的需要存儲a在內存中,因為我只需要一次,這是a0呢。 所以,我試圖做的是具有某種迭代對象來遍歷Excel文件中直接捕獲a0, a1a2好像我是導入a ,然后再迭代的a0, a1, a2a

我嘗試做這樣的事情的原因是,我的腳本計算所需的時間比從 Excel 導入數據所需的時間短。 因此,為了提高我的腳本的性能,我需要找到一種方法來迭代 Excel 而不是將數據保存到內存中。 我將不勝感激。

另外,我的評論:如果pandas或其他一些庫具有readThisCell()類型的功能,那么我可以輕松制作自己的 excel 迭代器。 但我不知道我對熊貓或任何其他圖書館的選擇是什么。

我沒有使用 pandas read_excel函數的經驗,但我們在openpyxl 方面取得了很好的成功。 該庫允許您定義一個指向特定工作表的變量,然后迭代該變量,如下所示(直接從他們的教程中提取):

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM