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

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

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

使用应用结果更新 HTML 表示。

Parameters:
funcfunction

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

在 1.3.0 版本发生变更.

在 1.4.0 版本发生变更.

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

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

subset标签、类数组、IndexSlice、可选

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

**kwargsdict

传递给 func

Returns:
Styler

参见

Styler.map_index

逐个元素地将 CSS 样式函数应用于标头。

Styler.apply_index

逐级别地将 CSS 样式函数应用于标头。

Styler.map

逐元素应用 CSS 样式函数。

Notes

func 的输出元素应该是 CSS 样式字符串,格式为 ‘attribute: value; attribute2: value2; …’,或者,如果没有要应用于该元素的样式,则为空字符串或 None

这类似于 DataFrame.apply,不同之处在于 axis=None 会一次性将函数应用于整个 DataFrame,而不是按列或按行应用。

Examples

>>> 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)  

更多详情请参阅 Table Visualization 用户指南。