我正在使用python pandas和MS excel来编辑xlsx文件。我来回迭代这些程序。该文件包含一些文本看起来像数字的列,例如,
如果我读了这篇文章,我会
pd.read_excel ('test.xlsx')
A
0 1
1 100
和
pd.read_excel ('test.xlsx').dtypes
A int64
dtype: object
我的问题是:如何将文本作为文本阅读?读取后解析它不是一个选项,因为部分信息(即前导零)在转换为数字时会丢失。
感谢您的帮助。
答案 0 :(得分:13)
您可以使用'converters'参数解决known issue(假设您知道列名称):
>>> pd.read_excel('test.xlsx', converters={'A': str})
A
0 001
1 100
>>> pd.read_excel('test.xlsx', converters={'A': str}).dtypes
A object
dtype: object
答案 1 :(得分:3)
根据this issue,这是一个已知的熊猫问题。
答案 2 :(得分:1)
如果您能够将文件转换为CSV,则dtype = str应该有效。
pd.read_csv('test.csv', dtype=str)
来源: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html