#12396·streamlit

`st.filter_bar` widget to filter dataframes

Author: lukasmasuchCreated Sep 1, 2025Updated Sep 16, 2026
Labelstype:enhancementarea:arrowarea:widgetstype:possible-component

Checklist

  • I have searched the existing issues for similar feature requests.
  • I added a descriptive title and summary to this issue.

Summary

Provide a widget that a makes it easy to add filtering functionality to apps.

filtered_df = st.filter_bar(df)

Screenshot form https://ui.bazza.dev/docs/data-table-filter

Why?

Adding filter functionality requires using the existing widgets and adding them with glue code one-by-one. This can be quite an effort and take a lot of available screen space.

How?

filtered_df = st.filter_bar(df)

The filter bar will read out the dataframe schema and allow the user to filter all relevant columns based on data type specific UI filters.

Some considerations:

  • If an unevaluated dataframe is passed on, only apply the filter to the unevaluated object without loading the data to memory.
  • There could be parameters to allow specifying the allowed columns for filtering or even column_config like configuration abilities for the filters itself.
  • The filter bar can be placed anywhere, the same way as any other widget.
  • We could reuse the same frontend component as standalone widget and integrate it to enable direct filtering for st.dataframe and charts: https://github.com/streamlit/streamlit/issues/1879

Additional Context