def apply(self, func, axis=<NUM_LIT:0>, subset=None, **kwargs):
self._todo.append((lambda instance: getattr(instance, '<STR_LIT>'),<EOL>(func, axis, subset), kwargs))<EOL>return self<EOL>
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)