Skip to main content
`Ctrl`+`K`

# pandas.io.formats.style.Styler.set_td_classes

Styler.set_td_classes(classes)

  Set the `class` attribute of `<td>` HTML elements.

  This method accepts a DataFrame of CSS class names and maps them to the corresponding `<td>` elements in the rendered HTML table using matching index and column keys. It can be used in combination with `Styler.set_table_styles` to build a self-contained CSS styling solution.

  Parameters:
    classes DataFrame

      DataFrame containing strings that will be translated to CSS classes, mapped by identical column and index key values that must exist on the underlying Styler data. None, NaN values, and empty strings will be ignored and not affect the rendered HTML.

  Returns:
    Styler
      Instance of class with `class` attribute set for `<td>`

        HTML elements.

  See also

  `Styler.set_table_styles`

    Set the table styles included within the `<style>` HTML element.

  `Styler.set_table_attributes`

    Set the table attributes added to the `<table>` HTML element.

  Notes

  Can be used in combination with `Styler.set_table_styles` to define an internal CSS solution without reference to external CSS files.

  Examples

      >>> df = pd.DataFrame(data=[[1, 2, 3], [4, 5, 6]], columns=["A", "B", "C"])
      >>> classes = pd.DataFrame(
      ...     [["min-val red", "", "blue"], ["red", None, "blue max-val"]],
      ...     index=df.index,
      ...     columns=df.columns,
      ... )
      >>> df.style.set_td_classes(classes)

  Using MultiIndex columns and a classes DataFrame as a subset of the underlying,

      >>> df = pd.DataFrame(
      ...     [[1, 2], [3, 4]],
      ...     index=["a", "b"],
      ...     columns=[["level0", "level0"], ["level1a", "level1b"]],
      ... )
      >>> classes = pd.DataFrame(
      ...     ["min-val"], index=["a"], columns=[["level0"], ["level1a"]]
      ... )
      >>> df.style.set_td_classes(classes)

  Form of the output with new additional css classes,

      >>> from pandas.io.formats.style import Styler
      >>> df = pd.DataFrame([[1]])
      >>> css = pd.DataFrame([["other-class"]])
      >>> s = Styler(df, uuid="_", cell_ids=False).set_td_classes(css)
      >>> s.hide(axis=0).to_html()
      '<style type="text/css"></style>'
      '<table id="T__">'
      '  <thead>'
      '    <tr><th class="col_heading level0 col0" >0</th></tr>'
      '  </thead>'
      '  <tbody>'
      '    <tr><td class="data row0 col0 other-class" >1</td></tr>'
      '  </tbody>'
      '</table>'