def apply(self, func, axis=0, subset=None, **kwargs):
    "\n        Apply a function column-wise, row-wise, or table-wise,\n        updating the HTML representation with the result.\n\n        Parameters\n        ----------\n        func : function\n            ``func`` should take a Series or DataFrame (depending\n            on ``axis``), and return an object with the same shape.\n            Must return a DataFrame with identical index and\n            column labels when ``axis=None``\n        axis : int, str or None\n            apply to each column (``axis=0`` or ``'index'``)\n            or to each row (``axis=1`` or ``'columns'``) or\n            to the entire DataFrame at once with ``axis=None``\n        subset : IndexSlice\n            a valid indexer to limit ``data`` to *before* applying the\n            function. Consider using a pandas.IndexSlice\n        kwargs : dict\n            pass along to ``func``\n\n        Returns\n        -------\n        self : Styler\n\n        Notes\n        -----\n        The output shape of ``func`` should match the input, i.e. if\n        ``x`` is the input row, column, or table (depending on ``axis``),\n        then ``func(x).shape == x.shape`` should be true.\n\n        This is similar to ``DataFrame.apply``, except that ``axis=None``\n        applies the function to the entire DataFrame at once,\n        rather than column-wise or row-wise.\n\n        Examples\n        --------\n        >>> def highlight_max(x):\n        ...     return ['background-color: yellow' if v == x.max() else ''\n                        for v in x]\n        ...\n        >>> df = pd.DataFrame(np.random.randn(5, 2))\n        >>> df.style.apply(highlight_max)\n        "
    self._todo.append(((lambda instance: getattr(instance, '_apply')), (func, axis, subset), kwargs))
    return self
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 : 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``

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)
def apply(self, func, axis=0, subset=None, **kwargs):
    "\n        Apply a function column-wise, row-wise, or table-wise,\n        updating the HTML representation with the result.\n\n        Parameters\n        ----------\n        func : function\n            ``func`` should take a Series or DataFrame (depending\n            on ``axis``), and return an object with the same shape.\n            Must return a DataFrame with identical index and\n            column labels when ``axis=None``\n        axis : int, str or None\n            apply to each column (``axis=0`` or ``'index'``)\n            or to each row (``axis=1`` or ``'columns'``) or\n            to the entire DataFrame at once with ``axis=None``\n        subset : IndexSlice\n            a valid indexer to limit ``data`` to *before* applying the\n            function. Consider using a pandas.IndexSlice\n        kwargs : dict\n            pass along to ``func``\n\n        Returns\n        -------\n        self : Styler\n\n        Notes\n        -----\n        The output shape of ``func`` should match the input, i.e. if\n        ``x`` is the input row, column, or table (depending on ``axis``),\n        then ``func(x).shape == x.shape`` should be true.\n\n        This is similar to ``DataFrame.apply``, except that ``axis=None``\n        applies the function to the entire DataFrame at once,\n        rather than column-wise or row-wise.\n\n        Examples\n        --------\n        >>> def highlight_max(x):\n        ...     return ['background-color: yellow' if v == x.max() else \n                        for v in x]\n        ...\n        >>> df = pd.DataFrame(np.random.randn(5, 2))\n        >>> df.style.apply(highlight_max)\n        "
    self._todo.append(((lambda instance: getattr(instance, '_apply')), (func, axis, subset), kwargs))
    return self