如何将pandas.style与streamlit一起使用

问题描述 投票:0回答:2

我正在使用 Streamlit 创建一个应用程序,我希望打印一个 pandas 数据框,在其中我可以更改数据框每个单元格的背景颜色。我发现 pandas 的“pandas.style”包支持这一点,但我无法使其与 Streamlit 一起使用。因此,我想知道 Streamlit 是否可以实现这一点,或者是否有人找到了解决方法。

这是我尝试过的:

df.style.apply(lambda x: "background-color: red")
st.dataframe(df)

提前感谢您的帮助!

python pandas dataframe streamlit pandas-styles
2个回答
7
投票

调用

df.style.apply
df.style.applymap
返回一个样式化的数据框,而您似乎假设它就地运行。

将您的代码更改为

st.dataframe(df.style.apply(lambda x: "background-color: red"))
,它应该可以工作。


0
投票

您需要传递

df.style
的输出,这是一个完整的示例。

enter image description here

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)
© www.soinside.com 2019 - 2024. All rights reserved.