class, precision=None, table_styles=None, uuid=None, caption=None, table_attributes=None, cell_ids=True, na_rep: Optional[str] = None)[source]

Helps style a DataFrame or Series according to the data with HTML and CSS.

dataSeries or DataFrame

Data to be styled - either a Series or DataFrame.


Precision to round floats to, defaults to pd.options.display.precision.

table_styleslist-like, default None

List of {selector: (attr, value)} dicts; see Notes.

uuidstr, default None

A unique identifier to avoid CSS collisions; generated automatically.

captionstr, default None

Caption to attach to the table.

table_attributesstr, default None

Items that show up in the opening <table> tag in addition to automatic (by default) id.

cell_idsbool, default True

If True, each cell will have an id attribute in their HTML tag. The id takes the form T_<uuid>_row<num_row>_col<num_col> where <uuid> is the unique identifier, <num_row> is the row number and <num_col> is the column number.

na_repstr, optional

Representation for missing values. If na_rep is None, no special formatting is applied

New in version 1.0.0.

See also

Return a Styler object containing methods for building a styled HTML representation for the DataFrame.


Most styling will be done by passing style functions into Styler.apply or Styler.applymap. Style functions should return values with strings containing CSS 'attr: value' that will be applied to the indicated cells.

If using in the Jupyter notebook, Styler has defined a _repr_html_ to automatically render itself. Otherwise call Styler.render to get the generated HTML.

CSS classes are attached to the generated HTML

  • Index and Column names include index_name and level<k> where k is its level in a MultiIndex

  • Index label cells include

    • row_heading

    • row<n> where n is the numeric position of the row

    • level<k> where k is the level in a MultiIndex

  • Column label cells include * col_heading * col<n> where n is the numeric position of the column * evel<k> where k is the level in a MultiIndex

  • Blank cells include blank

  • Data cells include data



(Jinja2 jinja2.Environment)


(Jinja2 Template)


(Jinja2 Loader)


apply(self, func[, axis, subset])

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

applymap(self, func[, subset])

Apply a function elementwise.

background_gradient(self[, cmap, low, high, …])

Color the background in a gradient style.

bar(self[, subset, axis, color, width, …])

Draw bar chart in the cell backgrounds.


Reset the styler, removing any previously applied styles.


Export the styles to applied to the current Styler.

format(self, formatter[, subset])

Format the text display value of cells.

from_custom_template(searchpath, name)

Factory function for creating a subclass of Styler.

hide_columns(self, subset)

Hide columns from rendering.


Hide any indices from rendering.

highlight_max(self[, subset, color, axis])

Highlight the maximum by shading the background.

highlight_min(self[, subset, color, axis])

Highlight the minimum by shading the background.

highlight_null(self[, null_color])

Shade the background null_color for missing values.

pipe(self, func, *args, **kwargs)

Apply func(self, *args, **kwargs), and return the result.

render(self, **kwargs)

Render the built up styles to HTML.

set_caption(self, caption)

Set the caption on a Styler.

set_na_rep(self, na_rep)

Set the missing data representation on a Styler.

set_precision(self, precision)

Set the precision used to render.

set_properties(self[, subset])

Method to set one or more non-data dependent properties or each cell.

set_table_attributes(self, attributes)

Set the table attributes.

set_table_styles(self, table_styles)

Set the table styles on a Styler.

set_uuid(self, uuid)

Set the uuid for a Styler.

to_excel(self, excel_writer[, sheet_name, …])

Write Styler to an Excel sheet.

use(self, styles)

Set the styles on the current Styler.

where(self, cond, value[, other, subset])

Apply a function elementwise.