如何将多个 excel/csv 工作表中的数据加载并馈送到 mutliselect 函数中? - 流光

How can I load and feed data from multiple excel/csv sheets into the mutliselect function? - Streamlit

上下文

在我的网络应用程序中,我希望我的用户 select 不同的数据类别,并且在 selecting 这个数据类别时,它会将数据从其各自的 csv 加载到 mutliselect 函数。下面演示了这一点:

例子

因此,在社会和经济的 selection 上,从它们单独的 excel 工作表中加载各自的 data/columns。虽然我不知道如何做到这一点。

我最初尝试了一个 for 循环,但它最终创建了许多不同的 multiselect 列。但这不是我想要的。如果我单击经济并且如果我 select 同时加载两个数据集的“社会”和“经济”,我只希望能够从“经济”加载数据。它们存储在不同的 excel 工作表中。

我现在的代码:

if choose_theme_category == 'Country specific':
        st.write("Choose data unique to a country for this theme.")
        Country_choice = st.beta_columns(3)
        countries = ['','United Kingdom', 'Ireland', 'Germany'] 
        Country = Country_choice[0].selectbox("Country", countries)    

  

    if Country == 'United Kingdom':
        # Category of data
        Category = st.beta_columns(4)
        Data_category = Category[0].checkbox("Social") 
        Data_category1 = Category[1].checkbox("Economy") 
        Data_category2 = Category[2].checkbox("Environment") 
        Data_category3 = Category[3].checkbox("Health") 
        Data_category4 = Category[0].checkbox("Policy") 
        
       # categories = [Data_category,Data_category1,Data_category2,Data_category3,Data_category4]
    
    data_mix_buttons = st.beta_columns([3,1,1])
    # confirmation_data = data_mix_buttons[0].button("Show Data")
    Hide_data = data_mix_buttons[2].checkbox("Hide Data")
    # if hide data is not pressed, then show data
    if not Hide_data:
        # for every selection chosen, add data from their respective excel sheets
        if Data_category:
            Select_data = st.multiselect("Choose columns", options=COVID_19_cols,key=1)
            Social_data = COVID_19_data[Select_data]
            if not Select_data:
                 st.error("Please select at least one column.")
            else:
                st.write(Social_data)

这可能吗?有什么建议吗?

解决方案在 streamlit 讨论网站中有详细说明here