首页 > 解决方案 > python - 当我从熊猫的excel中读取十六进制字符串时,如何抑制python中的科学记数法?

问题描述

我正在尝试通过pandas从excel文件中读取十六进制字符串(如用户ID)作为文件名但是pandas中的默认类型是float,所以当我从文件中读取这些列(包含数字和'e')时,那些ID 将是科学计数法,如 9645e101 --> 9.645e+104。

我努力了

xls = pd.ExcelFile('data.xlsx')
sheet=xls.parse(sheetname,convert_float=False)

sheet['ID'].astype('str')

两种解决方案都对我不起作用字符串仍然以科学记数法出现是否存在抑制转换为科学记数法的方法?预先感谢您的支持。

标签: pythonexcelpandas

解决方案


您必须将列的显式 dtypes 作为由列名索引的字典:

xls = pd.ExcelFile('data.xlsx')
sheet = xls.parse(sheetname, dtype={'ID': 'str'})

甚至可能没有标题行

sheet = xls.parse(sheetname, header=None, dtype={0: 'str'})

推荐阅读