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

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

admin2个月前 (04-05)AI技术55

深入理解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()

判断会失效。

相关文章

【深度学习】Java DL4J 2024年度技术总结

一、Java DL4J深度学习概述 1.1 DL4J框架简介 1.2 与其他深度学习框架的比较 1.3 DL4J 的优势 1.3.1 与 Java 生态系统的无...

深入理解优化:如何利用 Gemini 3.1 的阶梯计费策略?企业级大规模调用实务完全指南|Duuu笔记

需深入理解Gemini 3.1阶梯计费与调用联动关系,通过识别阶梯区间、请求级Token预估截断、多模型路由调度、响应缓存去重、项目拆分配额绑定五种路径优化成本。 ☞☞☞AI 智能聊天, 问答助手,...

AI实战详解:Perplexity 怎么做市场调研 Perplexity 市场分析实操教程【商业】最佳实践|Duuu笔记

掌握Perplexity AI市场调研需五步:一、结构化提问嵌入地域/时间/主体/指标四要素;二、限定PDF等原始信源提升可信度;三、分步提问生成制表符分隔文本以自动导入Excel;四、启用Pro S...

常见的神经网络模型

前馈神经⽹络中包含激活函数( 、tanh函数等)、损失函数(均⽅差损失函数、 等)、优化算法(BP算法)等。常⽤的模型结构有:感知机、 、全连接神经⽹络、卷积神经⽹络、...

深入理解前端开发:Minimax视频生成黑科技:复杂动作模拟完全指南|Duuu笔记

为精准模拟复杂动作,需采用分帧提示词构建、骨骼关键点引导注入和多阶段动作蒸馏三法:一、将动作拆解为带空间姿态的关键帧序列并加物理约束;二、注入2D/3D关键点坐标锚定关节位置;三、通过粗生成→特征提取...

深入理解AI:避坑实战:如何纠正 在执行 Prompt 时的幻觉与逻辑错误完全指南|Duuu笔记

有效纠偏AI幻觉的关键在于任务设计源头切断错误条件:明确角色权限禁令、硬性规定输出格式、使用精确动词、分步推理并嵌入检查点、提供带纠错痕迹的小样本示例、设置输出自检环节。 ☞☞☞AI 智能聊天, 问...

发表评论

访客

看不清,换一张

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