Pandas has a variety of methods for styling notebooks. I have been using those methods in the model_inspector library to display correlation matrices and confusion matrices in Jupyter notebooks with appropriate highlighting.
I recently encountered a problem with this approach: DataFrames were not rendering with custom styling when I reopened a notebook after saving it. After an hour or two of fruitless Googling, I figured out why: the notebook was not trusted, so Jupyter was not running the code to do the custom rendering when I reopened it. Running the Terminal command jupyter trust my_notebook.ipynb
fixed the problem.