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

时间:2020-07-08 02:00:25

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

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

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

这是我的导出命令: subprocess.stdout.on('data', (data) => { var dataToSend = data.toString(); console.log(dataToSend); res.write(dataToSend); // write data to response stream // res.send(dataToSend); // res.end('end') // return; }); // subscribe to close event subprocess.on('close', (code) => { if (code !== 0) { console.log(`grep process exited with code ${code}`); } res.end(); // finish the request, `end` not `send` });

P.s:在熊猫数据框中,数字以整数格式可见。另外,使用记事本打开csv文件时,数据将以正确的格式显示。

当前输出:

enter image description here

所需的输出:

enter image description here

2 个答案:

答案 0 :(得分:0)

选择单元格->右键单击->设置单元格格式->选择“数字”符号。

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

答案 1 :(得分:0)

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

两个选项:

  • 在Excel中使用整数

    我认为无法以任何方式在Excel的CSV中提供整数,仅提供十进制数字(如您所知,四舍五入)和文本(难以进一步分析)。

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

    但是,任何基于这些数字的公式都将很快再次转换为使用小数,并且舍入并降低了精度。

  • 避免使用Excel

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

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