Multi Select is Not Filtering DataFrame

I cannot get a multi-select box to filter a dataframe. Am I missing something obvious? Not getting an error but the displayed df will not update.

Can I get some help understanding what I am doing wrong?

#Establish the Streamlit App below
st.title("Analytics")
st.markdown("Welcome! Please select from the filters in the sidebar to the left of your screen to narrow down your search within the log analysis tool.")

# log table for the app...
st.dataframe(df)

options = df['app'].unique().tolist()
st.sidebar.multiselect('Which app do you want?',options)```

Hi @rzw3ch,

Where is code that filter the dataframe? Making a selectbox witht the unique options doesn’t magically filter the dataframe…

st.dataframe(df[df["app"].isin(options)])

Hi - Thanks for responding. I apologize that the filtering part of the code was not included the first time. I did try using the line you provided; however, the UI just greys-out and then comes back without having filtered the records. Not sure what I am doing wrong still.

You should store the selected options a variable and use that to filter the dataframe.

#Establish the Streamlit App below
st.title("Analytics")
st.markdown("Welcome! Please select from the filters in the sidebar to the left of your screen to narrow down your search within the log analysis tool.")

df = pd.read_csv("path/to/some/file.csv")

# log table for the app...
st.dataframe(df)

options = df['app'].unique().tolist()
selected_options = st.sidebar.multiselect('Which app do you want?',options)

filtered_df = df[df["app"].isin(selected_options)]

st.dataframe(filtered_df)
1 Like