Styler.apply(func, axis=0, subset=None, **kwargs)[source]

Apply a function column-wise, row-wise, or table-wase, updating the HTML representation with the result.

New in version 0.17.1.


func : function

func should take a Series or DataFrame (depending on axis), and return an object with the same shape. Must return a DataFrame with identical index and column labels when axis=None

axis : int, str or None

apply to each column (axis=0 or 'index') or to each row (axis=1 or 'columns') or to the entire DataFrame at once with axis=None

subset : IndexSlice

a valid indexer to limit data to before applying the function. Consider using a pandas.IndexSlice

kwargs : dict

pass along to func


self : Styler


The output shape of func should match the input, i.e. if x is the input row, column, or table (depending on axis), then func(x.shape) == x.shape should be true.

This is similar to DataFrame.apply, except that axis=None applies the function to the entire DataFrame at once, rather than column-wise or row-wise.


>>> def highlight_max(x):
...     return ['background-color: yellow' if v == x.max() else ''
                for v in x]
>>> df = pd.DataFrame(np.random.randn(5, 2))
Scroll To Top