核心内容

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)

相关笔记