Page not reloading after applying filters

Hi all,
Im a total noob using streamlit and Im trying to filter a dataframe. I found this component called dynamic filters and I dont understand what Im doing wrong.

This example code from dynamic filters github works like a charm but when I add a button on the sidebar the page doesnt reload as expected after the filter is applied. Why? Any suggestions?

Working code below:

import streamlit as st
import pandas as pd
from streamlit_dynamic_filters import DynamicFilters

data = {
    'region': ['North America', 'North America', 'Europe', 'Oceania',
               'North America', 'North America', 'Europe', 'Oceania',
               'North America', 'North America', 'Europe', 'Oceania'],
    'country': ['USA', 'Canada', 'UK', 'Australia',
                'USA', 'Canada', 'UK', 'Australia',
                'USA', 'Canada', 'UK', 'Australia'],
    'city': ['New York', 'Toronto', 'London', 'Sydney',
             'New York', 'Toronto', 'London', 'Sydney',
             'New York', 'Toronto', 'London', 'Sydney'],
    'district': ['Manhattan', 'Downtown', 'Westminster', 'CBD',
                 'Brooklyn', 'Midtown', 'Kensington', 'Circular Quay',
                 'Queens', 'Uptown', 'Camden', 'Bondi']
}

df = pd.DataFrame(data)

dynamic_filters = DynamicFilters(df, filters=['region', 'country', 'city', 'district'])


with st.sidebar:
    st.write("Apply filters in any order ๐Ÿ‘‡")
dynamic_filters.display_filters(location='sidebar')
dynamic_filters.display_df()

Code not working when adding a sidebar button:

import streamlit as st
import pandas as pd
from streamlit_dynamic_filters import DynamicFilters

data = {
    'region': ['North America', 'North America', 'Europe', 'Oceania',
               'North America', 'North America', 'Europe', 'Oceania',
               'North America', 'North America', 'Europe', 'Oceania'],
    'country': ['USA', 'Canada', 'UK', 'Australia',
                'USA', 'Canada', 'UK', 'Australia',
                'USA', 'Canada', 'UK', 'Australia'],
    'city': ['New York', 'Toronto', 'London', 'Sydney',
             'New York', 'Toronto', 'London', 'Sydney',
             'New York', 'Toronto', 'London', 'Sydney'],
    'district': ['Manhattan', 'Downtown', 'Westminster', 'CBD',
                 'Brooklyn', 'Midtown', 'Kensington', 'Circular Quay',
                 'Queens', 'Uptown', 'Camden', 'Bondi']
}

df = pd.DataFrame(data)

dynamic_filters = DynamicFilters(df, filters=['region', 'country', 'city', 'district'])

if st.sidebar.button('My sidebar button'):
  with st.sidebar:
      st.write("Apply filters in any order ๐Ÿ‘‡")
  dynamic_filters.display_filters(location='sidebar')
  dynamic_filters.display_df()

Im using python 3.10.13 and streamlit 1.32.2

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.