class, precision=None, table_styles=None, uuid=None, caption=None, table_attributes=None)[source]

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

data: Series or DataFrame

precision: int

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

table_styles: list-like, default None

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

uuid: str, default None

a unique identifier to avoid CSS collisons; generated automatically

caption: str, default None

caption to attach to the table


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 genterated 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


env (Jinja2 Environment)
template (Jinja2 Template)
loader (Jinja2 Loader)


apply(func[, axis, subset]) Apply a function column-wise, row-wise, or table-wase, updating the HTML representation with the result.
applymap(func[, subset]) Apply a function elementwise, updating the HTML representation with the result.
background_gradient([cmap, low, high, axis, …]) Color the background in a gradient according to the data in each column (optionally row).
bar([subset, axis, color, width, align]) Color the background color proptional to the values in each column.
clear() “Reset” the styler, removing any previously applied styles.
export() Export the styles to applied to the current Styler.
format(formatter[, subset]) Format the text display value of cells.
from_custom_template(searchpath, name) Factory function for creating a subclass of Styler with a custom template and Jinja environment.
hide_columns(subset) Hide columns from rendering.
hide_index() Hide any indices from rendering.
highlight_max([subset, color, axis]) Highlight the maximum by shading the background
highlight_min([subset, color, axis]) Highlight the minimum by shading the background
highlight_null([null_color]) Shade the background null_color for missing values.
render(**kwargs) Render the built up styles to HTML
set_caption(caption) Set the caption on a Styler
set_precision(precision) Set the precision used to render.
set_properties([subset]) Convenience method for setting one or more non-data dependent properties or each cell.
set_table_attributes(attributes) Set the table attributes.
set_table_styles(table_styles) Set the table styles on a Styler.
set_uuid(uuid) Set the uuid for a Styler.
to_excel(excel_writer[, sheet_name, na_rep, …]) Write Styler to an excel sheet
use(styles) Set the styles on the current Styler, possibly using styles from Styler.export.
where(cond, value[, other, subset]) Apply a function elementwise, updating the HTML representation with a style which is selected in accordance with the return value of a function.
Scroll To Top