使用 Streamlit 显示数据帧索引名称
Display dataframe index name with Streamlit
以下代码不显示索引名称:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
st.write(df)
有没有办法像在 jupyter notebook 中那样显示 my_index
?
我找到了一个使用 pandas 数据框 to_html()
方法的解决方案:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
st.write(df.to_html(), unsafe_allow_html=True)
结果如下:
如果您希望索引和列名位于同一行 header 中,您可以使用以下代码:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
df.columns.name = df.index.name
df.index.name = None
st.write(df.to_html(), unsafe_allow_html=True)
结果如下:
注意 - 如果您有一个大型数据集并且想要限制行数,请改用 df.to_html(max_rows=N)
,其中 N 是您要显示的行数。
根据 streamlit doc 它将数据帧写入 table。所以没有显示索引名称。
要显示 my_index
名称,请将索引重置为默认值,结果 my_index
将变为普通列。在 st.write().
之前添加以下内容
df.reset_index(inplace=True)
输出
以下代码不显示索引名称:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
st.write(df)
有没有办法像在 jupyter notebook 中那样显示 my_index
?
我找到了一个使用 pandas 数据框 to_html()
方法的解决方案:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
st.write(df.to_html(), unsafe_allow_html=True)
结果如下:
如果您希望索引和列名位于同一行 header 中,您可以使用以下代码:
import pandas as pd
import streamlit as st
df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
df.columns.name = df.index.name
df.index.name = None
st.write(df.to_html(), unsafe_allow_html=True)
结果如下:
注意 - 如果您有一个大型数据集并且想要限制行数,请改用 df.to_html(max_rows=N)
,其中 N 是您要显示的行数。
根据 streamlit doc 它将数据帧写入 table。所以没有显示索引名称。
要显示 my_index
名称,请将索引重置为默认值,结果 my_index
将变为普通列。在 st.write().
df.reset_index(inplace=True)