Python中如何将浮点数转为指定3位小数精度的百分比?
解决Pandas浮点数转百分比保留3位小数的问题
你遇到的问题核心是没有正确应用样式格式化:df.style.format()会返回一个带样式的DataFrame对象,但你没有将这个结果赋值或直接展示,而是依然display原始的df,所以看不到格式化后的效果。
正确的两种处理方式:
- 直接展示样式化后的对象
# 生成样式化对象并直接展示 styled_df = df.style.format({'var3': "{:.3%}",'var1': "{:.3%}",'var4': "{:.3%}", 'var5': "{:.3%}"}) display(styled_df)
这种方式不会修改原始DataFrame的数值,仅在展示时应用百分比格式。
- 先修改数值再格式化(若需要永久改变数据存储)
# 指定需要格式化的列 target_cols = ['var1', 'var3', 'var4', 'var5'] # 将浮点数转换为百分比数值并保留3位小数 df[target_cols] = df[target_cols].apply(lambda x: round(x * 100, 3)) # 设置显示格式为带百分号的三位小数 display(df.style.format({col: "{:.3f}%" for col in target_cols}))
当var1的值为0.0092592592592592时,以上两种方式都会输出0.926%,符合你的预期。
内容的提问来源于stack exchange,提问作者R.A
相关产品推荐
相关产品推荐

