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

如何让Pandas DataFrame列值统一显示为两位小数?

解决Pandas DataFrame price列统一显示两位小数的问题

嘿,我懂你遇到的这个困扰——明明用round(x,2)把数值四舍五入到两位小数了,但像0.5这种值还是只显示一位小数。其实这是数值存储和显示格式的区别:round已经把数值处理成两位小数了,但Pandas默认会省略末尾的零,所以看起来没达到预期。下面给你两种实用的解决方案,按需选就行:

方法1:保留数值类型,仅修改显示格式(推荐)

这种方法不会改变列的数值类型,只是强制让Pandas显示两位小数,非常适合后续还要做数值计算的场景。

全局生效(所有浮点列都显示两位小数)

一行代码搞定全局设置,之后整个DataFrame里的浮点列都会以两位小数展示:

import pandas as pd
pd.options.display.float_format = '{:.2f}'.format

设置完后,0会显示成0.00,0.5变成0.50,完全符合你的需求。

仅针对price列生效(不影响其他列)

如果只想让price列按要求显示,其他列保持原样,可以用style.format:

display(DF.style.format({'price': '{:.2f}'}))

注意:这个方法主要用于Jupyter Notebook这类交互式环境的展示,如果要导出文件,得结合导出参数一起用。

方法2:转换为字符串类型(固定显示格式)

要是你不需要再对price列做数值运算,或者需要导出成固定格式的文本,直接把列转成字符串就行:

DF['price'] = DF['price'].apply(lambda x: "{:.2f}".format(round(x, 2)))

处理后,price列会变成字符串类型,每个值都严格显示两位小数:

  • 0 → "0.00"
  • 0.5 → "0.50"
  • 1.133333 → "1.13"

导出文件时的额外设置

如果要把结果导出成CSV或Excel,也能确保两位小数格式:

  • 导出CSV:
DF.to_csv('output.csv', float_format='%.2f')
  • 导出Excel:
DF.to_excel('output.xlsx', float_format='%.2f')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:52:59