pandas.io.formats.style.Styler#
- class pandas.io.formats.style.Styler(data, precision=None, table_styles=None, uuid=None, caption=None, table_attributes=None, cell_ids=True, na_rep=None, uuid_len=5, decimal=None, thousands=None, escape=None, formatter=None)[source]#
Helps style a DataFrame or Series according to the data with HTML and CSS.
This class provides methods for styling and formatting a Pandas DataFrame or Series. The styled output can be rendered as HTML or LaTeX, and it supports CSS-based styling, allowing users to control colors, font styles, and other visual aspects of tabular data. It is particularly useful for presenting DataFrame objects in a Jupyter Notebook environment or when exporting styled tables for reports and
- Parameters:
- dataSeries or DataFrame
Data to be styled - either a Series or DataFrame.
- precisionint, optional
Precision to round floats to. If not given defaults to
pandas.options.styler.format.precision.Changed in version 1.4.0.
- 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, tuple, default None
String caption to attach to the table. Tuple only used for LaTeX dual captions.
- 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
idattribute in their HTML tag. Theidtakes the formT_<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_repis None, no special formatting is applied, and falls back topandas.options.styler.format.na_rep.- uuid_lenint, default 5
If
uuidis not specified, the length of theuuidto randomly generate expressed in hex characters, in range [0, 32].- decimalstr, optional
Character used as decimal separator for floats, complex and integers. If not given uses
pandas.options.styler.format.decimal.Added in version 1.3.0.
- thousandsstr, optional, default None
Character used as thousands separator for floats, complex and integers. If not given uses
pandas.options.styler.format.thousands.Added in version 1.3.0.
- escapestr, optional
Use ‘html’ to replace the characters
&,<,>,', and"in cell display string with HTML-safe sequences.Use ‘latex’ to replace the characters
&,%,$,#,_,{,},~,^, and\in the cell display string with LaTeX-safe sequences. Use ‘latex-math’ to replace the characters the same way as in ‘latex’ mode, except for math substrings, which either are surrounded by two characters$or start with the character\(and end with\). If not given usespandas.options.styler.format.escape.Added in version 1.3.0.
- formatterstr, callable, dict, optional
Object to define how values are displayed. See
Styler.format. If not given usespandas.options.styler.format.formatter.Added in version 1.4.0.
Attributes
index
(data.index Index)
columns
(data.columns Index)
env
(Jinja2 jinja2.Environment)
template_html
(Jinja2 Template)
template_html_table
(Jinja2 Template)
template_html_style
(Jinja2 Template)
template_latex
(Jinja2 Template)
loader
(Jinja2 Loader)
See also
DataFrame.styleReturn a Styler object containing methods for building a styled HTML representation for the DataFrame.
Notes
Warning
Styleris primarily intended for use on safe input that you control. When usingStyleron untrusted, user-provided input to serve HTML, you should setescape="html"to prevent security vulnerabilities. See the Jinja2 documentation on escaping HTML for more.Most styling will be done by passing style functions into
Styler.applyorStyler.map. 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.to_html to get the generated HTML.CSS classes are attached to the generated HTML
Index and Column names include
index_nameandlevel<k>where k is its level in a MultiIndexIndex label cells include
row_headingrow<n>where n is the numeric position of the rowlevel<k>where k is the level in a MultiIndex
Column label cells include
col_headingcol<n>where n is the numeric position of the columnlevel<k>where k is the level in a MultiIndex
Blank cells include
blankData cells include
dataTrimmed cells include
col_trimorrow_trim.
Any, or all, or these classes can be renamed by using the
css_class_namesargument inStyler.set_table_styles, giving a value such as {“row”: “MY_ROW_CLASS”, “col_trim”: “”, “row_trim”: “”}.Examples
>>> df = pd.DataFrame( ... [[1.0, 2.0, 3.0], [4, 5, 6]], index=["a", "b"], columns=["A", "B", "C"] ... ) >>> pd.io.formats.style.Styler( ... df, precision=2, caption="My table" ... )
Please see: Table Visualization for more examples.
Attributes
template_dirthis_dirMethods
apply(func[, axis, subset])Apply a CSS-styling function column-wise, row-wise, or table-wise.
apply_index(func[, axis, level])Apply a CSS-styling function to the index or column headers, level-wise.
background_gradient([cmap, low, high, axis, ...])Color the background in a gradient style.
bar([subset, axis, color, cmap, width, ...])Draw bar chart in the cell backgrounds.
clear()Reset the
Styler, removing any previously applied styles.concat(other)Append another Styler to combine the output into a single table.
export()Export the styles applied to the current Styler.
format([formatter, subset, na_rep, ...])Format the text display value of cells.
format_index([formatter, axis, level, ...])Format the text display value of index labels or column headers.
format_index_names([formatter, axis, level, ...])Format the text display value of index names or column names.
from_custom_template(searchpath[, ...])Factory function for creating a subclass of
Styler.hide([subset, axis, level, names])Hide the entire index / column headers, or specific rows / columns from display.
highlight_between([subset, color, axis, ...])Highlight a defined range with a style.
highlight_max([subset, color, axis, props])Highlight the maximum with a style.
highlight_min([subset, color, axis, props])Highlight the minimum with a style.
highlight_null([color, subset, props])Highlight missing values with a style.
highlight_quantile([subset, color, axis, ...])Highlight values defined by a quantile with a style.
map(func[, subset])Apply a CSS-styling function elementwise.
map_index(func[, axis, level])Apply a CSS-styling function to the index or column headers, elementwise.
pipe(func, *args, **kwargs)Apply
func(self, *args, **kwargs), and return the result.relabel_index(labels[, axis, level])Relabel the index, or column header, keys to display a set of specified values.
set_caption(caption)Set the text added to a
<caption>HTML element.set_properties([subset])Set defined CSS-properties to each
<td>HTML element for the given subset.set_sticky([axis, pixel_size, levels])Add CSS to permanently display the index or column headers in a scrolling frame.
set_table_attributes(attributes)Set the table attributes added to the
<table>HTML element.set_table_styles([table_styles, axis, ...])Set the table styles included within the
<style>HTML element.set_td_classes(classes)Set the
classattribute of<td>HTML elements.set_tooltips(ttips[, props, css_class, ...])Set the DataFrame of strings on
Stylergenerating:hovertooltips.set_uuid(uuid)Set the uuid applied to
idattributes of HTML elements.text_gradient([cmap, low, high, axis, ...])Color the text in a gradient style.
to_excel(excel_writer[, sheet_name, na_rep, ...])Write Styler to an Excel sheet.
to_html([buf, table_uuid, table_attributes, ...])Write Styler to a file, buffer or string in HTML-CSS format.
to_latex([buf, column_format, position, ...])Write Styler to a file, buffer or string in LaTeX format.
to_string([buf, encoding, sparse_index, ...])Write Styler to a file, buffer or string in text format.
to_typst([buf, encoding, sparse_index, ...])Write Styler to a file, buffer or string in Typst format.
use(styles)Set the styles on the current Styler.