【问题标题】:Pandas dataframe integer column is in scientific notation in csv file when writing csv using df.to_csv使用 df.to_csv 编写 csv 时,Pandas 数据帧整数列在 csv 文件中采用科学计数法
【发布时间】:2026-01-01 22:00:01
【问题描述】:

我有一个写入 csv 文件的数据框,其中有一列整数值,如 1618240891297,但该表以科学计数法 1.61824E+12 显示它。我可以通过将 Excel 中的 Number FormatGeneral 更改为 Number 来纠正它。使用 DataFrame.to_csv 编写 csv 文件时,有没有办法进行此更改?

【问题讨论】:

  • 如果在记事本/notepad++ 中打开 CSV 会发生什么?我敢打赌它在那里的格式正确,这意味着您遇到的问题是 Excel 如何显示 CSV 内容的问题,而不是 CSV 本身的内容。如果这是真的,那么正确的答案是像你已经做的那样更改数字格式,或者导出到 xls 文件并抢先更改格式。

标签: python pandas dataframe csv


【解决方案1】:

您可以使用DataFrame.to_csv()float_format 参数来控制输出格式。例如:

df.to_csv('myfile.csv', sep=',', float_format='%.6f')   # write with precision .6

【讨论】:

  • 但我不希望它是浮点数。这是一个int64。在 Excel 中,Formula Bar 中的数字是我希望它显示的方式。但是以 Number FormatGeneral 的单元格显示以科学计数法显示。如果我将格式转换为 Number,它会显示一个精度为小数点后两位的浮点数。