How to display a clickable link pandas dataframe

One way would be to use the to_html method in pandas and combine it with Streamlit’s options for injecting html. Though this would lose the interactivity of the pandas dataframe and make it a static table.

st.markdown(df.to_html(render_links=True),unsafe_allow_html=True)

Or if you want to render whatever html is in a cell, you can specify to not escape the characters (with or without rendering plain urls as links):

st.markdown(df.to_html(render_links=True, escape=False),unsafe_allow_html=True)

I see in the documentation that there is experimental support for pandas styler, but I don’t know off the bat how it behaves with styling links since Streamlit is a bit specific about how it accepts and displays html. I’m playing around with it right now and will post again if I find something.