You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas to_csv保存CSV时数值被舍入,如何禁止舍入?

解决Pandas to_csv过度舍入数值的问题

Pandas的to_csv默认会对浮点数做自动格式处理,导致小数值被舍入成0,下面是几种直接有效的解决方法:

方法1:指定浮点数输出格式

在to_csv里用float_format参数强制保留足够多的小数位,确保小数值不会被截断:

# 保留10位小数,可根据实际精度需求调整位数
df.to_csv("output_path", index=False, header=False, float_format='%.10f')

如果不确定数值的小数位数,也可以用科学计数法格式保证精度:

df.to_csv("output_path", index=False, header=False, float_format='%.10e')

方法2:将数值转为字符串存储

把浮点数列直接转成字符串类型,完全保留原始数值的字符表示:

# 针对单个需要保留精度的列转换
df['your_column_name'] = df['your_column_name'].astype(str)
# 或者批量处理所有浮点数列
df = df.applymap(lambda x: str(x) if isinstance(x, float) else x)
df.to_csv("output_path", index=False, header=False)

注意:后续读取CSV时需要手动将字符串转回数值类型。

方法3:用Decimal类型存储高精度数值

如果涉及极高精度的计算,先把数值转为decimal.Decimal类型再保存:

from decimal import Decimal
df['your_column_name'] = df['your_column_name'].apply(Decimal)
df.to_csv("output_path", index=False, header=False)

读取时同样需要用Decimal类型解析对应列。

验证方式:保存后用文本编辑器打开CSV文件,检查目标数值是否完整保留,比如0.00002134566是否显示为原数值而非0.0。

内容的提问来源于stack exchange,提问作者pillow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:07:10