如何将xls中的所有字段作为string导入pandas数据框?

我正在尝试从xlsx导入一个文件到一个Python Pandas数据框。 我想阻止字段/列被解释为整数,从而失去前导零或其他所需的异构格式。

所以对于一个有100列的Excel工作表,我会用范围(99)的dict理解来做下面的事情。

import pandas as pd filename = 'C:\DemoFile.xlsx' fields = {col: str for col in range(99)} df = pd.read_excel(filename, sheetname=0, converters=fields) 

这些导入文件始终有不同数量的列,我正在寻找处理这种方式,而不是一直手动更改范围。

有人有任何进一步的build议或替代Excel文件读取到一个数据框,默认情况下所有字段视为string?

非常感谢!

尝试这个:

 xl = pd.ExcelFile(r'C:\DemoFile.xlsx') ncols = xl.book.sheet_by_index(0).ncols df = xl.parse(0, converters={i : str for i in range(ncols)}) 

更新:

 In [261]: type(xl) Out[261]: pandas.io.excel.ExcelFile In [262]: type(xl.book) Out[262]: xlrd.book.Book 

通常的解决scheme是:

  1. 只读取一行数据以获取列名和列数
  2. 自动创build字典,每列都有一个stringtypes
  3. 使用步骤2创build的字典重新读取完整的数据。