我正在使用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文件时,数据将以正确的格式显示。
当前输出:
所需的输出:
答案 0 :(得分:0)
选择单元格->右键单击->设置单元格格式->选择“数字”符号。
Python正确地完成了工作。由于列宽有限,默认情况下,Excel使用科学计数法。上面的步骤告诉Excel不要这样做。
答案 1 :(得分:0)
Excel倾向于自动转换各种东西(大整数,字母数字代码(如1e2),任何看起来像日期的东西);通常,使用它来处理数据时可能会出现问题。
两个选项:
在Excel中使用整数
我认为无法以任何方式在Excel的CSV中提供整数,仅提供十进制数字(如您所知,四舍五入)和文本(难以进一步分析)。
Excel可以在内部存储大整数(最多9位数);您应该能够使用OpenPyXl之类的库将它们直接写入.xslx
。
但是,任何基于这些数字的公式都将很快再次转换为使用小数,并且舍入并降低了精度。
避免使用Excel
由于您已经在使用Python,因此可以继续使用Python进行其他分析;那么您就可以完全控制公式在每个阶段使用整数还是十进制数字(对于十进制数字,是多少个小数位)。
这样做的好处是您可以完全控制;缺点是您拥有完全的控制权...