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

Pandas DataFrame保留两位小数并添加百分号的最快实现方法

解决方案:pandas DataFrame浮点数转两位小数百分号格式

你原代码的问题在于round(2)仅做了数值层面的四舍五入,当小数第二位为0时,转字符串操作会自动丢弃末尾的0,才会出现仅保留1位小数的情况。可以通过格式化字符串强制约束小数位数来解决,两种常用方案如下:

方案1:直接修改DataFrame单元格内容为目标格式

如果需要将DataFrame的内容直接转成带两位小数、百分号的字符串,使用以下代码:

import numpy as np
import pandas as pd

df = pd.DataFrame(data=np.random.randn(5,5))
# 强制每个数值保留两位小数后拼接百分号
# pandas 2.1以下版本用applymap,2.1及以上版本可替换为map
df = df.applymap(lambda x: f"{x:.2f}%")
print(df)

该方案输出的所有单元格都会严格保留两位小数,例如数值-0.2会转为-0.20%,2.0会转为2.00%,完全符合你的要求。

方案2:仅展示时格式化,保留原浮点数据

如果后续还需要对DataFrame做数值计算,不需要修改原始数值,仅在展示时显示为百分号格式,可以用pandas的样式格式化功能:

import numpy as np
import pandas as pd

df = pd.DataFrame(data=np.random.randn(5,5))
# 仅修改展示样式,原df的数值还是浮点型,不影响后续计算
styled_df = df.style.format("{:.2f}%")
# Jupyter环境下直接输出styled_df即可看到格式化效果,也可调用to_html()导出为带样式的html文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:24:05