核心内容
DataFrame.style属性返回 Styler 对象,用于在 Jupyter / HTML 等富媒体环境中对表格进行可视化格式化。
一、Styler 对象
import pandas as pd
import numpy as np
df = pd.DataFrame({
'产品': ['A', 'B', 'C', 'D'],
'销量': [120, 85, 200, 95],
'单价': [19.99, 35.5, 12.3, 25.75]
})
styler = df.style # Styler 对象核心特性
| 特性 | 说明 |
|---|---|
| 链式调用 | 每个方法返回 Styler 自身 |
| 不改数据 | 样式仅影响渲染,styler.data 仍为原值 |
| 按需渲染 | 在 Jupyter 中自动展示,也可调用导出方法 |
| 支持条件样式 | 基于数据内容动态设定样式 |
| 支持自定义 | apply() / map() 传入自定义函数 |
常用属性
styler.data # 原始 DataFrame
styler.index # 行索引
styler.columns # 列索引
styler.hide_index() # 隐藏索引(链式可用)
styler.uuid # 表格唯一 ID基本使用
# Jupyter 中自动渲染
df.style
# 链式样式:标题 + 格式 + 高亮最大值
df.style \
.set_caption('产品销售表') \
.format({'单价': '¥{:.2f}'}) \
.highlight_max(color='lightgreen')环境要求
DataFrame.style依赖 HTML 渲染,在 Jupyter Notebook / JupyterLab 中最直观;普通控制台中效果有限,需通过to_html()或to_string()查看。
二、Styler 与全局显示选项的关系
| 维度 | 全局选项 display.* | Styler |
|---|---|---|
| 作用对象 | 控制台文本输出 | HTML / Excel / LaTeX |
| 修改数据 | 仅显示 | 仅显示 |
| 自定义函数 | 不支持 | 支持 apply() / map() |
| 条件样式 | 不支持 | 支持高亮、渐变、条形图等 |
# 二者可配合:先设置全局精度,再用 Styler 精细控制
with pd.option_context('display.precision', 2):
display(df.style.format('{:.2f}'))三、在 IPython / Jupyter 中手动展示
from IPython.display import display
display(df.style)
# 多个 Styler
display(df.head().style)
display(df.tail().style)相关笔记
- 22.2 格式化方法 - Styler 的核心方法 API
- 22.3 样式函数 - 内置样式函数
- 22.1 导出 - 将 Styler 导出为 HTML / Excel / LaTeX