pandas 如何在streamlit上隐藏索引?

nvbavucw  于 2023-10-14  发布在  其他
关注(0)|答案(3)|浏览(243)

我想使用一些pandas样式的资源,我想隐藏streamlit上的表索引。
我试过这个:

import streamlit as st
import pandas as pd

table1 = pd.DataFrame({'N':[10, 20, 30], 'mean':[4.1, 5.6, 6.3]})
st.dataframe(table1.style.hide_index().format(subset=['mean'],
             decimal=',', precision=2).bar(subset=['mean'], align="mid"))

但不管.hide_index()我得到了这个:

解决这个问题的想法?

lzfw57am

lzfw57am1#

st.dataframe的文档显示"Styler support is experimental!"
也许这就是问题所在
但是如果我使用.to_html()st.write(),我可以得到没有index的表

import streamlit as st
import pandas as pd

df = pd.DataFrame({'N':[10, 20, 30], 'mean':[4.1, 5.6, 6.3]})

styler = df.style.hide_index().format(subset=['mean'], decimal=',', precision=2).bar(subset=['mean'], align="mid")

st.write(styler.to_html(), unsafe_allow_html=True)

#st.write(df.to_html(index=False), unsafe_allow_html=True)

bmp9r5qi

bmp9r5qi2#

另一种选择是使用CSS选择器来删除索引列。如docs中所述,您可以使用st.table执行以下操作:

# import packages
import streamlit as st
import pandas as pd

# table
table1 = pd.DataFrame({'N':[10, 20, 30], 'mean':[4.1, 5.6, 6.3]})

# CSS to inject contained in a string
hide_table_row_index = """
            <style>
            thead tr th:first-child {display:none}
            tbody th {display:none}
            </style>
            """

# Inject CSS with Markdown
st.markdown(hide_table_row_index, unsafe_allow_html=True)

# Display a static table
st.table(table1.style.format(subset=['mean'],
             decimal=',', precision=2).bar(subset=['mean'], align="mid"))

输出量:

如你所见,索引已经消失了。请记住,表函数需要整个页面。

5cg8jx4n

5cg8jx4n3#

尝试使用以下代码:
st.dataframe(data,hide_index=True)
st.rame函数有一个参数,默认情况下为None,将其更改为True,它可能会工作

相关问题