Python 如何在dataframe中基于用户选择显示值

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

第二个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 = 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]