Python 如何在dataframe中基于用户选择显示值
第二个multiselect的选项将根据预先存在的数据结构中的值进行更改Python 如何在dataframe中基于用户选择显示值,python,pandas,dataframe,multi-select,streamlit,Python,Pandas,Dataframe,Multi Select,Streamlit,第二个multiselect的选项将根据预先存在的数据结构中的值进行更改 import pandas as pd import streamlit as st df = pd.DataFrame({"A":[4,6,6], "B":[4,6,9], "C":[1,2,3], }) interactive = s
import pandas as pd
import streamlit as st
df = pd.DataFrame({"A":[4,6,6],
"B":[4,6,9],
"C":[1,2,3],
})
interactive = st.beta_container()
col1, col2 = st.beta_columns(2)
with interactive:
all_columns_names= df.columns.tolist()
with col1:
option1 = st.multiselect("select column to plot",all_columns_names)
with col2:
option2 = st.multiselect("select required value/s to
plot",list(set(df.loc[(df.iloc[:,0].isin(option1))][df.columns[1]])))
例子:
col1
中的语句中的错误在哪里?如何获取与所选选项1
相关的选项2
的值?您可以通过迭代每列并将其附加到容器中来获取列的值
与交互式:
对于col2:
vals=set()
如果不存在(选项1,列表):
选项1=[选项1]
对于选项1中的col:
vals.update(df[col].values.tolist())
选项2=st.multiselect(“选择要打印的所需值”,列表(VAL))
@KristianCanler这样更好吗?如果您收到错误代码,请将其也包括在内。除此之外,代码现在看起来是最小的/可复制的,但为了清晰起见,问题可能需要更多的解释。@用户5980666说如果option1
是a
,那么option2
的逻辑是什么?@Ynjxsjmh如果option1是一个option2必须包括[4,6,6]
if option1 = B
then option2 = [4,6,9]
if option1 = [A,C]
then option2 = [4,6,6,1,2,3]