HTML receives a custom string of html data. Nobody forbids you to pass in a style tag with the custom CSS style for the .dataframe
class (which the to_html
method adds to the table).
So the simplest solution would be to just add a style and concatenate it with the output of the df.to_html
:
style="<style>.dataframe td { text-align: right; }</style>"
HTML( style + df.to_html( formatters=frmt ) )
But I would suggest to define a custom class for a DataFrame since this will change the style of all the tables in your notebook (style is “global”).
style="<style>.right_aligned_df td { text-align: right; }</style>"
HTML(style + df.to_html(formatters=frmt, classes="right_aligned_df"))
You can also define the style in one of the previous cells, and then just set the classes
parameter of the to_html
method:
# Some cell at the begining of the notebook
In [2]: HTML('''<style>
.right_aligned_df td { text-align: right; }
.left_aligned_df td { text-align: right; }
.pink_df { background-color: pink; }
</style>''')
...
# Much later in your notebook
In [66]: HTML(df.to_html(classes="pink_df"))