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扩展