我想streamlit显示整个数据框时,任何过滤器应用。
下面是我认为足够有用的代码:
df = pd.read_csv('classes_particulars.csv')
#Filters
idCode = st.sidebar.multiselect(
"Selecciona un ID",
('ABSUDUHM', 'DWHWBMMX', 'MIXEECJR', 'NFKQWKOP', 'RQWLPVCJ')
)
preuPagat = st.sidebar.number_input(
"Preu pagat"
)
dfSelection = df.query(
"Preu == @preuPagat or ID == @idCode"
)
要显示dfSelection
I代码:
st.table(dfSelection)
但是,如果没有选择筛选器,我希望显示st.table(df)
。
下面是我对一堆错误所做的尝试:
if df.query("Preu == @preuPagat or ID == @idCode"):
df.table(dfSelection)
else:
df.table(df)
我得到的错误是这样的:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
以下是使用st.table(df)
时streamlit应用的外观:
以下是Streamlit应用程序在使用时的外观:
if len(df.query("Preu == @preuPagat or ID == @idCode")):
st.table(dfSelection)
else:
st.table(df
有什么帮助吗?
1条答案
按热度按时间ih99xse11#
使用
len(df)
来检查是否有内容被过滤掉了。还可以使用st.table(df),而不是df.table(df)或者
完整代码
输出