我有大量的Excel文件,每个文件都有一个列,其中数字的格式为文本。 Excel给出错误“此单元格中的数字被格式化为文本或以撇号开头” - 请参阅第三列,其中单元格具有绿色三角形。
我的目标是在Pandas 中打开所有这些文件,而不必手动打开每个文件并将列转换为数字。但是,pd.read_excel()失败并出现以下xlrd
错误:
XLRDError: ZIP file contents not a known type of workbook
当我直接使用xlrd
时,不出所料:wb = xlrd.open_workbook(filename)
我收到同样的错误。
我也试过openpyxl:wb = openpyxl.load_workbook(filename)
,它给了我这个:
KeyError: "There is no item named 'xl/_rels/workbook.xml.rels' in the archive"
如果我手动将列转换为excel中的数字并重新保存工作簿,我确认该文件可以通过pandas(xlrd)和openpyxl打开。
有没有人有任何想法?
答案 0 :(得分:2)
阅读excel时使用“转换器”
Docs。
例如:
df = pd.read_excel('yourfile.xlsx',sheetname='sheetname',header=0,converters={ "% Chg" : str })