将excel电子表格读入pandas DataFrame时将数字转换为字符串
Posted
技术标签:
【中文标题】将excel电子表格读入pandas DataFrame时将数字转换为字符串【英文标题】:Convert numbers to strings when reading an excel spreadsheet into a pandas DataFrame 【发布时间】:2014-01-25 01:37:51 【问题描述】:我正在使用read_excel
将一些 excel 电子表格(xlsx 格式)读入 pandas,通常效果很好。我遇到的问题是,当一列包含数字时,pandas 会将它们转换为 float64 类型,我希望它们被视为字符串。读入后,我可以将列转换为str:
my_frame.my_col = my_frame.my_col.astype('str')
这可以为列分配正确的类型,但是当我查看此列中的值时,字符串以科学格式格式化,例如8.027770e+14,这不是我想要的。我想弄清楚如何告诉熊猫将列作为字符串读取,或者稍后进行转换,以便我获得原始(非科学)格式的值。
【问题讨论】:
read_excel
使用外部模块,dtypes 将嵌入到您的 excel 工作表中,因此没有 dtype
参数,因此您必须导出为 csv 并使用 read_csv
和 @ 987654326@ 参数或转换为后处理步骤
【参考方案1】:
pandas.read_csv() 有一个 dtype
参数:
dtype : 类型名称或列的字典 -> 类型
Data type for data or columns. E.g. ‘a’: np.float64, ‘b’: np.int32
【讨论】:
谢谢。我可以先使用 xlrd 将 excel 文件转换为 csv 格式,但理想情况下我想避免这个额外的步骤。【参考方案2】:我用round来解决,如果你做round(number,5)在大多数情况下你不会丢失数据,在8.027770e+14的情况下你会得到零
【讨论】:
以上是关于将excel电子表格读入pandas DataFrame时将数字转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
将 Google 电子表格 CSV 导入 Pandas 数据框
将 CSV 读入 Pandas 后 MultiLabelBinarizer() 的格式问题
我想要一个 pandas 脚本根据第一个电子表格中的值将一个 excel 表中的值排列到另一个表中