Styler.apply_index(func, axis=0, level=None, **kwargs)[source]

Apply a CSS-styling function to the index or column headers, level-wise.

Updates the HTML representation with the result.

New in version 1.4.0.


func should take a Series and return a string array of the same length.

axis{0, 1, “index”, “columns”}

The headers over which to apply the function.

levelint, str, list, optional

If index is MultiIndex the level(s) over which to apply the function.


Pass along to func.


See also


Apply a CSS-styling function to headers elementwise.


Apply a CSS-styling function column-wise, row-wise, or table-wise.


Apply a CSS-styling function elementwise.


Each input to func will be the index as a Series, if an Index, or a level of a MultiIndex. The output of func should be an identically sized array of CSS styles as strings, in the format ‘attribute: value; attribute2: value2; …’ or, if nothing is to be applied to that element, an empty string or None.


Basic usage to conditionally highlight values in the index.

>>> df = pd.DataFrame([[1,2], [3,4]], index=["A", "B"])
>>> def color_b(s):
...     return np.where(s == "B", "background-color: yellow;", "")

Selectively applying to specific levels of MultiIndex columns.

>>> midx = pd.MultiIndex.from_product([['ix', 'jy'], [0, 1], ['x3', 'z4']])
>>> df = pd.DataFrame([np.arange(8)], columns=midx)
>>> def highlight_x(s):
...     return ["background-color: yellow;" if "x" in v else "" for v in s]
>>>, axis="columns", level=[0, 2])