【问题标题】:Convert numbers to strings when reading an excel spreadsheet into a pandas DataFrame将excel电子表格读入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@ 参数或转换为后处理步骤

标签: python excel pandas


【解决方案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的情况下你会得到零

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 2018-07-13
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2013-07-23
    • 2020-05-22
    • 2017-06-04
    • 2023-03-13
    相关资源
    最近更新 更多