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

pandas.to_csv导出csv文件时浮点数未保留两位小数如何解决

解决方案

你可以通过以下两种方式实现导出csv时weight列保留两位小数:


方法1:使用to_csv的float_format参数全局设置

这是最简单的方案,会对DataFrame中所有浮点类型的列统一生效,导出时自动保留两位小数:

import pandas
import numpy

sample_data = {
    'item': numpy.array(['item1', 'item1', 'item3'], dtype='str'),
    'weight': numpy.array([140.00, 3.00, 90.50], dtype='float64')
}

df = pandas.DataFrame(sample_data)
# 新增float_format参数设置浮点数格式
df.to_csv('filepath', float_format='%.2f')
  • 参数说明:float_format='%.2f'表示将所有浮点数格式化为保留2位小数的形式,末尾无意义的0也会自动补全。
  • 优势:导出后csv的数值列如果后续用pandas读取,仍会被识别为浮点类型,无需额外格式转换。

方法2:单独格式化指定列

如果你不需要修改所有浮点列,仅需要调整weight列的格式,可以先将该列转为保留两位小数的字符串类型后再导出:

# 仅格式化weight列,保留两位小数
df['weight'] = df['weight'].apply(lambda x: f"{x:.2f}")
# 正常导出即可
df.to_csv('filepath')
  • 适用场景:DataFrame存在多个浮点列,仅部分列需要固定小数位数的场景。
  • 注意:该方法导出后weight列在csv中是字符串格式,后续读取时如果需要做数值计算,需要手动转换为浮点类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:00:01