我正在使用 Streamlit 创建一个应用程序,我希望打印一个 pandas 数据框,在其中我可以更改数据框每个单元格的背景颜色。我发现 pandas 的“pandas.style”包支持这一点,但我无法使其与 Streamlit 一起使用。因此,我想知道 Streamlit 是否可以实现这一点,或者是否有人找到了解决方法。
这是我尝试过的:
df.style.apply(lambda x: "background-color: red")
st.dataframe(df)
提前感谢您的帮助!
调用
df.style.apply
或 df.style.applymap
返回一个样式化的数据框,而您似乎假设它就地运行。
将您的代码更改为
st.dataframe(df.style.apply(lambda x: "background-color: red"))
,它应该可以工作。
您需要传递
df.style
的输出,这是一个完整的示例。
import pandas as pd
import numpy as np
import streamlit as st
# Generate fake data
np.random.seed(0)
num_rows = 10
columns = ['A', 'B', 'C']
# Create a DataFrame with random values
data = pd.DataFrame(np.random.randn(num_rows, len(columns)), columns=columns)
# Style the DataFrame
styled_data = data.style.highlight_max(axis=0)
# Display the styled DataFrame
st.title('Styled DataFrame Example')
st.write('This is a DataFrame with highlighted maximum values for each column.')
st.dataframe(styled_data)