Pandas 讀取超過 65536 行的 Excel 文件

Excel 文件的格式曾經發生過一次變化,在 Excel 2007 之前,使用擴展名爲 .xls 格式的文件,這種文件格式是一種特定的二進制格式,最多支持 65,536 行,256 列表格。從 Excel 2007 版開始,默認採用了基於 XML 的新的文件格式 .xlsx ,支持的表格行數達到了 1,048,576,列數達到了 16,384。須要注意的是,將 .xlsx 格式的文件轉換爲 .xls 格式的文件時,65536 行和 256 列以後的數據都會被丟棄。html

 

Pandas 讀取 Excel 文件的引擎是 xlrd , xlrd 雖然同時支持 .xlsx 和 .xls 兩種文件格式,可是在源碼文件 xlrd/sheet.py 中限制了讀取的 Excel 文件行數必須小於 65536,列數必須小於 256。excel

 

這就致使,即便是 .xlsx 格式的文件, xlrd 依然不支持讀取 65536 行以上的 Excel 文件htm

 

openpyxl 是一個專門用來操做 .xlsx 格式文件的 Python 庫,和 xlrd 相比它對於最大行列數的支持和 .xlsx 文件所定義的最大行列數一致。ip

首先安裝 openpyxl :get

pip install openpyxl源碼

Pandas 的 read_excel 方法中,有 engine 字段,能夠指定所使用的處理 Excel 文件的引擎,填入 openpyxl ,再讀取文件就能夠了。pandas

import pandas as pdpip

df = pd.read_excel(‘./data.xlsx’, engine=’openpyxl’)import

print(len(df))  # 160000擴展

 

原文:https://www.lizenghai.com/archives/29883.html

相關文章
相關標籤/搜索