我想用pandas(python)阅读很多excel文件。导入数据时,我希望所有列都存储为字符串。
问题是我不知道列的数目,甚至不知道它们的名称(每次都会改变)。对于这个问题你有一个简单的解决办法吗?
我想做的是:
converters = { i : str for i in range(0,99)}
df = pd.read_excel('example.xlsx', converters = converters)
但由于excel文件不同,索引有时会超出范围。
理想情况下,我想:
df = pd.read_excel('example.xlsx', converters = ALL)
不过,到目前为止,我还没有找到能帮助我做类似事情的东西…
谢谢你的帮助。
最佳答案
更新:我认为我们可以使用标准(对于pandas)xlrd
模块,然后重用它从excel文件读取数据
xl = pd.ExcelFile(fn)
ncols = xl.book.sheet_by_index(0).ncols
df = xl.parse(0, converters={i : str for i in range(ncols)})
旧答案:
我想你应该先得到列数:
from openpyxl import load_workbook
workbook = load_workbook(filename, use_iterators=True)
col_num = workbook.worksheets[0].max_column
converters = { i : str for i in range(col_num)}
...