[英]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, a1
和a2
在這里顯示為列表,但它們是迭代器對象,我不存儲它們。
當你看到這里, a0
總是一樣的a
,我不真的需要存儲a
在內存中,因為我只需要一次,這是a0
呢。 所以,我試圖做的是具有某種迭代對象來遍歷Excel文件中直接捕獲a0, a1
和a2
好像我是導入a
,然后再迭代的a0, a1, a2
過a
。
我嘗試做這樣的事情的原因是,我的腳本計算所需的時間比從 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.