如何防止 excel 将 int 转换为科学记数法?

How can I prevent excel from converting int into scientific notation?

我正在使用 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 文件时,数据会以正确的格式显示。

当前输出:

期望的输出:

Select 单元格 -> 右键单击​​ -> 设置单元格格式 -> 选择 'Number' 符号。

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

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

两个选项:

  • 在Excel

    中使用整数

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

    Excel内部可以存储大整数(最多9个quintillion);你应该能够使用像 OpenPyXl.

    这样的库将它们直接写入 .xslx

    但是,任何基于这些数字的公式都将很快再次使用小数,但会四舍五入并丢失精度。

  • 避免使用Excel

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

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