当前位置:首页 > AI技术 > 正文内容

中Pandas如何格式化浮点数 利style设置数值显示|Duuu笔记

admin7个月前 (04-05)AI技术218

深入理解Python原理,本文探讨

df.style.format() 不影响原始数据,因其仅为显示层机制,只改变HTML/Notebook渲染外观,底层数值类型、精度、存储均不变;取值如df.iloc[0,0]仍返回原始浮点数(如3.1415926535),导出CSV/Excel默认用原始值,需额外参数或round()修改数据本身。

为什么

df.style.format()

不影响原始数据

因为

style

是纯显示层机制,只改变渲染后的 HTML 或 Notebook 中的外观,底层

df

的数值类型、精度、存储完全不变。你用

df.iloc[0, 0]

取出来的还是原始浮点数,比如

3.1415926535

,不会变成

3.14

。

常见错误现象:改完

format()

后导出 Excel 或做计算,发现小数位没“生效”——那是正常现象,不是 bug。

导出 CSV/Excel 时默认用原始值,需额外传参如

df.to_excel(..., float_format="%.2f")

想永久截断数值,得用

round()

或

np.round()

修改数据本身

format()

中的字符串模板(如

"{:.2f}"

)不支持条件逻辑,复杂格式要写自定义函数

按列单独控制精度比全局 format() 更常用

实际分析中,价格列保留 2 位,增长率保留 1 位,误差值保留 6 位很常见。硬套全局

format("{:.3f}")

反而掩盖信息。

推荐直接传字典:

“

Python免费学习笔记(深入)

”;

df.style.format({

"price": "${:.2f}",

"growth_rate": "{:.1%}",

"error": "{:.6f}"

})

注意:

format()

键名必须严格匹配列名(区分大小写),且只对

object

和数值列生效;如果某列是

category

或含空值,可能静默失效。

列名带空格或特殊字符?用

df.columns = df.columns.str.replace(" ", "_")

预处理更省心

想对所有数值列统一设精度,用

{np.number: "{:.2f}"}

,但会覆盖已定义的字符串列格式

百分比列别忘了先乘 100 再用

{:.1%}

,否则 0.05 会显示成 5.0%

导出 HTML 时样式丢失?检查

set_properties()

和

to_html()

的配合

style.format()

生成的是

Styler

对象,直接调

to_html()

才能保留格式;如果误用

df.to_html()

,就只剩原始数据。

白瓜AI

白瓜AI,一个免费图文AI创作工具,支持 AI 仿写,图文生成,敏感词检测,图片去水印等等。

下载

正确写法:

df.style.format({"value": "{:.3f}"}).to_html("report.html")

容易踩的坑:

在 Jupyter 里显示正常,但保存 HTML 后打开发现没格式?大概率漏了

.to_html()

,用了

df.to_html()

导出的 HTML 没表格边框?加

.set_properties(**{"border": "1px solid #ddd"})

中文列名乱码?确保

to_html()

加

escape=False

并用 UTF-8 编码保存文件

性能敏感场景下慎用

format()

+ 大量行数

Styler

在渲染时会对每单元格调用格式化函数,10 万行 × 10 列就是百万次字符串操作。Jupyter 渲染会明显卡顿,导出 HTML 文件体积也暴涨。

替代思路:

仅对前 1000 行用

style

,其余用

df.head(1000).style...

真要导出全量带格式的 HTML?先用

round()

降精度再导出,避免运行时格式化

服务端生成报表?考虑用

plotly.express

或

dash

动态格式化,而非 Pandas Styler

最常被忽略的一点:

format()

不支持 NaN 的差异化显示,比如想把缺失值标为

"—"

而非空字符串,得用

df.fillna("—").style.format(...)

,但要注意这会改变原始

NaN

类型,后续

isna()

判断会失效。

相关文章

什么是LLM?看这一篇就够了!

一、全套AGI大模型学习路线 AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能! 二、640套AI大模型报告合集 这套包含640份报告的合集,涵盖了AI大...

跨平台机器学习:ML.NET架构及应用编程

平台上的一个机器学习框架,它提供了一套丰富的算法和工具,使得开发人员可以轻松地构建和部署机器学习模型。支持多种编程语言,包括等,这使得它成为跨平台机器学习的理想选择。的架构主要包括三个部分:数据读取、...

什么是人工智能 ?

您可以使用 ML 训练 AI,使其精确、快速地执行任务。这可以通过自动化员工感到吃力或厌烦的业务部分来提高运营效率。同样,您可以使用 AI 自动化来腾出员工资源,用于更复杂和更具创造性的工作。...

前端开发实战详解:骡子快跑怎么注册账号 骡子快跑账号注册流程最佳实践|Duuu笔记

骡子快跑注册仅需1分钟,但激活码需从Discord指定频道获取,输错3次将锁账户24小时;积分与注册邮箱强绑定且不可更换;部分地区即使注册成功也无法运行Agent。 ☞☞☞AI 智能聊天, 问答助手...

从入门到精通:前端开发之骡子快跑支持热点借势吗 骡子快跑节日营销文案生成|Duuu笔记

骡子快跑平台提供五步节日营销文案生成路径:一、调用内置32个节日模板库;二、输入热点事件触发动态生成;三、绑定自有素材库实现个性化延展;四、多角色视角协同输出;五、接入微信生态直发并校验合规性。 ☞...

深入理解AI:WorkBuddy 怎么做组织架构图 WorkBuddy 组织架构图生成教程【实战】完全指南|Duuu笔记

WorkBuddy可通过四种方式生成组织架构图:一、用自然语言指令触发AI自动解析并渲染Mermaid图表;二、上传Excel结构化数据映射字段后批量构建动态树状图;三、启用OpenClaw技能包对接...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。