【问题标题】:How can I prevent excel from converting int into scientific notation?如何防止excel将int转换为科学记数法?
【发布时间】:2020-10-28 08:53:31
【问题描述】:

我正在使用 python 从 API 中提取数据并将其存储在 pandas 数据框中。我以 CSV 格式导出数据框,当我使用 excel 打开它时,一些列(具有非常大的数字)被转换为科学记数法,我不希望这样。我希望数字保持整数格式。

我尝试在 to_csv 命令中使用浮点格式选项,但也没有用。

这是我的导出命令: df.to_csv("output.csv",index=False, float_format='{:f}'.format, encoding='utf-8',sep=',')

P.s:数字在 pandas 数据框中以整数格式显示。此外,当使用记事本打开 csv 文件时,数据会以正确的格式显示。

当前输出:

期望的输出:

【问题讨论】:

  • 您也可以将数字转换为字符串,然后将数字作为字符串存储在您的 csv 文件中。

标签: python excel pandas csv export-to-csv


【解决方案1】:

Excel 倾向于自动转换各种事物(大整数、像 1e2 这样的字母数字代码、任何看起来像日期的东西);在使用它来处理数据时,这通常是一个问题。

两种选择:

  • 在 Excel 中使用整数

    我认为没有任何方法可以在 CSV 中为 Excel 提供整数,只能提供十进制数字(如您所见,四舍五入)和文本(难以进一步分析)。

    Excel 可以在内部存储大整数(最多 9 quintillion);您应该可以使用 OpenPyXl 之类的库将它们直接写入 .xslx

    但是,任何基于这些数字的公式都会很快切换到再次使用十进制数字,并且会出现四舍五入和精度损失。

  • 避免使用 Excel

    由于您已经在使用 Python,您可以继续使用 Python 进行附加分析;那么您就可以完全控制公式在每个阶段是使用整数还是小数(对于小数,还有多少小数位)。

    这样做的好处是您可以完全控制;缺点是您可以完全控制...

【讨论】:

    【解决方案2】:

    选择单元格 -> 右键单击​​ -> 设置单元格格式 -> 选择“数字”表示法。

    Python 正在正确地完成它的工作。由于列宽有限,Excel 默认使用科学计数法。上述步骤告诉 Excel 不要这样做。

    【讨论】:

    • 将其转换为数字格式会对值进行四舍五入。我不想四舍五入这些值。有没有办法我也可以防止这种情况发生?
    • 但是你的数据都是整数,对吧?我不认为 Excel 实际上会弄乱四舍五入,除非有一些实际的小数。
    • Excel:imgur.com/jC72kOZ Python:imgur.com/6YLOYbL 它影响最后 4 到 6 位数字。我想对其进行数据分析,即使是很小的变化也会影响分析。
    猜你喜欢
    • 2019-03-24
    • 2011-02-02
    • 2022-10-10
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多