I have a dataset having 50 dealers. Now I used check box to select them. But in my Streamlit interface all 50 names are shown and it looked very clumsy. Can anyone guide me how to modify that interface so that it is very eye catching?
can you share your code here?
def multiple_checkbox(data1, select_column_name, value1,value2):
data = data1
data[select_column_name] = data[select_column_name].astype(str)
unique = data[select_column_name].values.tolist()
myset = set(unique)
mynewlist = list(myset)
dummy_data = mynewlist
st.session_state['dummy_data'] = dummy_data
def checkbox_container(data2, val1, val2):
col = st.columns(4)
if col[2].button('All', key = val1):
for i in data2:
st.session_state['dynamic_checkbox_' + i] = True
st.experimental_rerun()
if col[3].button('None', key = val2):
for i in data2:
st.session_state['dynamic_checkbox_' + i] = False
st.experimental_rerun()
for i in data2:
st.checkbox(i, key= 'dynamic_checkbox_' + i)
def get_selected_checkboxes():
return [i.replace('dynamic_checkbox_' ,'') for i in st.session_state.keys() if i.startswith('dynamic_checkbox_') and st.session_state[i]]
checkbox_container(dummy_data, value1, value2)
data = data[data[select_column_name].isin(get_selected_checkboxes())]
return(data)
I am using the same code maultiple time so I think to define it as a function. Also I add “All” and “None” button in the code.
st.multiselect
is usually the function for something like this, so that you don’t need 50 instances of a widget:
Best,
Randy
Can I do the similar thing using st.multiselect? If not then I need a tool in streamlit which can create the similar thing which is shown in the picture. Please help me @randyzwitch & @BeyondMyself .
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.