在12月份发布的Pandas的1.2.0版本中,pa有一个关于处理Excel的重大更新。即不再推荐使用xlwt与xlrd引擎,推荐使用openpyxl处理Excel。
此前Pandas默认处理Excel的引擎是xlrd和xlwt(一个是读取Excel的库一个是写入Excel的库)。由于xlwt只支持对旧版本Excel(.xls)的写入,且不再更新维护。而xlrd目前也只会支持旧版本Excel(.xls)的读取,因此Pandas官方已经不再推荐使用这两个引擎处理Excel。
此前,即便是读取新版本Excel,Pandas也会默认使用xlrd读取(即read_excel()的engine参数没有指定的时候)。从1.2.0版本开始engine=None的处理逻辑变成如下顺序:
1、如果读取的文件是OpenDocument格式,使用odf引擎
2、如果是xls格式(即旧版本Excel),则使用xlrd
3、如果是xlsb格式,使用pyxlsb引擎
注意这是未制定处理引擎的情况,如果指定处理引擎也会处理xlsx格式。
此外,从1.3.0开始,Pandas处理Excel默认逻辑进一步改成如下顺序:
1、如果已经安装openpyxl库,使用这个引擎
2、如果安装xlrd>=2.0,那么直接报错
3、如果是低版本xlrd,会告警
从上面的逻辑看,未来应该Pandas处理Excel应该只支持openpyxl了。因此,如果各位使用xlrd引擎处理Excel需要记住安装openpyxl库以切换引擎并适配最新的Pandas版本。
最后,Pandas官方也温馨提示:如果你依然坚持使用xlrd或者xlwt引擎处理Excel,也请不要再去社区提问或者报告问题了。他们应该也不会理你了。[灵光一闪]