python - 如何将 xls 中的所有字段作为字符串导入 Pandas 数据框?

标签 python excel python-3.x pandas dataframe

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

因此,对于包含 100 列的 Excel 工作表,我将使用范围为 (99) 的字典理解来执行以下操作。

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)

这些导入文件确实始终具有不同数量的列,我希望以不同于一直手动更改范围的方式处理此问题。

对于将 Excel 文件读入数据框并默认将所有字段视为字符串,有人有任何进一步的建议或替代方法吗?

非常感谢!

最佳答案

试试这个:

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

关于python - 如何将 xls 中的所有字段作为字符串导入 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862516/

相关文章:

python - 使用 LFU 设计缓存服务器以降低数据库负载

python - 装饰器和类

vba - 将单元格从一张表复制到多张表中 Excel - VBA

excel - 将自定义数字字段拆分字符串给出类型不匹配

excel - 检查数组中是否存在值

Python 在特定条件下停止递增列表

Python 2.7 韩文字符全部变成 ?s

python-3.x - 为什么它不转一圈?以及如何修复它?

python - 找到每个类别的独特值(value)

python - pygame:获取音乐的当前时间