pythonstreamlit

Set default value for selectbox


I am new to streamlit. I tried to set a default value for sidebar.selectbox. The code is below. I appreciate the help! Thank you in advance.

st.sidebar.header('Settings')

fichier = st.sidebar.selectbox('Dataset', ('djia', 'msci', 'nyse_n', 'nyse_o', 'sp500', 'tse'))

window_ANTICOR = st.sidebar.selectbox('Window ANTICOR', ['<select>',3, 5, 10, 15, 20, 30])
if window_ANTICOR == '<select>':    
    window_ANTICOR == 30

window_OLMAR = st.sidebar.selectbox('Window OLMAR', ['<select>',3, 5, 10, 15, 20, 30])
if window_OLMAR == '<select>':    
    window_OLMAR == 5

eps_OLMAR = st.sidebar.selectbox('Eps OLMAR', ['<select>', 3, 5, 10, 15, 20, 30])
if eps_OLMAR == '<select>':    
    eps_OLMAR == 10

eps_PAMR = st.sidebar.selectbox('Eps PAMR', ['<select>',0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1])
if eps_PAMR == '<select>':    
    eps_PAMR == 0.5

variant = st.sidebar.selectbox('Variant PAMR', (0, 1, 2))
if variant == '<select>':    
    eps_PAMR == 0

Solution

  • Use the index keyword of the selectbox widget. Pass the index of the value in the options list that you want to be the default choice.

    E.g. if you wanted to set the default choice of the selectbox labeled 'Window ANTICOR' to 30 (which you appear to be trying to do), you could simply do this:

    values = ['<select>',3, 5, 10, 15, 20, 30]
    default_ix = values.index(30)
    window_ANTICOR = st.sidebar.selectbox('Window ANTICOR', values, index=default_ix)
    

    Source: https://docs.streamlit.io/library/api-reference/widgets/st.selectbox