Write Styler to a file, buffer or string in HTML-CSS format.
Added in version 1.3.0.
String, path object (implementing os.PathLike[str]), or file-like object implementing a string write() function. If None, the result is returned as a string.
Id attribute assigned to the <table> HTML element in the format:
<table id="T_<table_uuid>" ..>
If not given uses Styler’s initially assigned value.
Attributes to assign within the <table> HTML element in the format:
<table .. <table_attributes> >
If not given defaults to Styler’s preexisting value.
Whether to sparsify the display of a hierarchical index. Setting to False will display each explicit level element in a hierarchical key for each row. Defaults to pandas.options.styler.sparse.index value.
Added in version 1.4.0.
Whether to sparsify the display of a hierarchical index. Setting to False will display each explicit level element in a hierarchical key for each column. Defaults to pandas.options.styler.sparse.columns value.
Added in version 1.4.0.
Adds “font-weight: bold;” as a CSS property to table style header cells.
Added in version 1.4.0.
Set, or overwrite, the caption on Styler before rendering.
Added in version 1.4.0.
The maximum number of rows that will be rendered. Defaults to pandas.options.styler.render.max_rows/max_columns.
Added in version 1.4.0.
The maximum number of columns that will be rendered. Defaults to pandas.options.styler.render.max_columns, which is None.
Rows and columns may be reduced if the number of total elements is large. This value is set to pandas.options.styler.render.max_elements, which is 262144 (18 bit browser rendering).
Added in version 1.4.0.
Character encoding setting for file output (and meta tags if available). Defaults to pandas.options.styler.render.encoding value of “utf-8”.
Whether to output a fully structured HTML file including all HTML elements, or just the core <style> and <table> elements.
Whether to include the <style> element and all associated element class and id identifiers, or solely the <table> element without styling identifiers.
Any additional keyword arguments are passed through to the jinja2 self.template.render process. This is useful when you need to provide additional variables for a custom template.
If buf is None, returns the result as a string. Otherwise returns None.
See also
DataFrame.to_htmlWrite a DataFrame to a file, buffer or string in HTML format.
Examples
>>> df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
>>> print(df.style.to_html())
<style type="text/css">
</style>
<table id="T_1e78e">
<thead>
<tr>
<th class="blank level0" > </th>
<th id="T_1e78e_level0_col0" class="col_heading level0 col0" >A</th>
<th id="T_1e78e_level0_col1" class="col_heading level0 col1" >B</th>
</tr>
...
© 2008–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.io.formats.style.Styler.to_html.html