Unfortunately, we do not officially support dataframes with multiple header rows at the moment
There are some workarounds, as shown by @mathcatsand by manually converting to string. We are tracking this issue here on Github: Enable `st.dataframe` to handle dataframes with hierarchical headers · Issue #6319 · streamlit/streamlit · GitHub You can help to prioritize this issue by upvoting it on Github.