pandas.io.formats.style.Styler.apply#

Styler.apply(func, axis=0, subset=None, **kwargs)[源代码][源代码]#

应用一个 CSS 样式函数按列、按行或按表格。

使用结果更新 HTML 表示。

参数:
func函数

如果 axis 在 [0,1] 中,func 应该接受一个 Series 并返回一个长度相同的类列表对象,或者一个长度不一定相同的 Series,具有考虑 subset 的有效索引标签。如果 axisNonefunc 应该接受一个 DataFrame 并返回一个形状相同的 ndarray 或一个形状不一定相同的 DataFrame,具有考虑 subset 的有效索引和列标签。

在 1.3.0 版本发生变更.

在 1.4.0 版本发生变更.

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认 0

应用于每一列(axis=0'index'),应用于每一行(axis=1'columns'),或一次性应用于整个 DataFrame(axis=None)。

子集label, 类似数组, IndexSlice, 可选

一个有效的 2d 输入到 DataFrame.loc[<subset>],或者,在 1d 输入或单个键的情况下,到 DataFrame.loc[:, <subset>],其中列优先,以限制 data 在应用函数 之前

**kwargsdict

传递给 func

返回:
Styler

参见

Styler.map_index

对标题元素逐个应用CSS样式函数。

Styler.apply_index

按级别对标题应用CSS样式函数。

Styler.map

逐元素应用CSS样式函数。

注释

func 的输出元素应该是字符串形式的 CSS 样式,格式为 ‘attribute: value; attribute2: value2; …’,或者,如果不需要对该元素应用任何内容,则为空字符串或 None

这与 DataFrame.apply 类似,除了 axis=None 将函数应用于整个 DataFrame,而不是按列或按行。

例子

>>> def highlight_max(x, color):
...     return np.where(x == np.nanmax(x.to_numpy()), f"color: {color};", None)
>>> df = pd.DataFrame(np.random.randn(5, 2), columns=["A", "B"])
>>> df.style.apply(highlight_max, color="red")  
>>> df.style.apply(highlight_max, color="blue", axis=1)  
>>> df.style.apply(highlight_max, color="green", axis=None)  

使用 subset 将应用限制为单个列或多列

>>> df.style.apply(highlight_max, color="red", subset="A")
... 
>>> df.style.apply(highlight_max, color="red", subset=["A", "B"])
... 

使用二维输入到 subset 以选择行以及列

>>> df.style.apply(highlight_max, color="red", subset=([0, 1, 2], slice(None)))
... 
>>> df.style.apply(highlight_max, color="red", subset=(slice(0, 5, 2), "A"))
... 

使用一个返回长度不等但包含有效索引标签的 Series / DataFrame 的函数

>>> df = pd.DataFrame([[1, 2], [3, 4], [4, 6]], index=["A1", "A2", "Total"])
>>> total_style = pd.Series("font-weight: bold;", index=["Total"])
>>> df.style.apply(lambda s: total_style)  

更多详情请参见 表格可视化 用户指南。