将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时将数字转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

将带有单元格中公式的excel文件读入R

将 Google 电子表格 CSV 导入 Pandas 数据框

将 CSV 读入 Pandas 后 MultiLabelBinarizer() 的格式问题

我想要一个 pandas 脚本根据第一个电子表格中的值将一个 excel 表中的值排列到另一个表中

如何在 pandas/python 中查看 excel 电子表格的公式?

用于 Excel 电子表格的 Pandas groupby