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

`Styler.``apply`(func, axis=0, subset=None, **kwargs)

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

  Parameters:

  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 : {0 or ‘index’, 1 or ‘columns’, None}, default 0

  > apply to each column (`axis=0` or `'index'`), 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`

  Returns: | self : Styler

  Notes

  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.

  Examples

      >>> 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))
      >>> df.style.apply(highlight_max)

Scroll To Top