Filters

Module with custom block of filter widgets

Example of usage:

dataframe_filters = DataFrameFilter(
   df=sales_df,
   filters=[
      RangeFilter('source_count'),
      GreaterFilter('sales'),
      GreaterFilter('demand_ratio'),
      LessFilter('available_ratio'),
      CategoricalFilter('trend_category'),
   ],
   columns=3,
   gap="small",
)

dataframe_filters.display_filters()
dataframe_filters.display_df(hide_index=True)

DataFrameFilter

class filters.DataFrameFilter(df: DataFrame, filters: List[Filter], columns: int = 2, gap: str = 'medium')

Component that sets up filters block and displays DataFrame

__init__(df: DataFrame, filters: List[Filter], columns: int = 2, gap: str = 'medium') None
Parameters:
  • filters – List of filters instances

  • columns – amount of columns in block

  • gap – distance between columns, can be small, medium or large

display_df(*args, **kwargs) None

Renders the filtered dataframe in the main area. Supports the same functionality as st.dataframe

display_filters() None

Renders the block of filters

filter_df() DataFrame

Apply all filters for DataFrame

CategoricalFilter

class filters.CategoricalFilter(column: str, label: str | None = None)

Multiselect of categorical data

__init__(column: str, label: str | None = None) None
Parameters:
  • column – name of column to be filtered

  • label – text in filter label before column name

display(df: DataFrame) None

Display DataFrame on page

Parameters:

df – pandas DataFrame

filter(df: DataFrame) DataFrame

Filters DataFrame

Parameters:

df – pandas DataFrame

Returns:

Filtered pandas DataFrame

RangeFilter

class filters.RangeFilter(column: str, label: str | None = None)

Min/max slider value selector

__init__(column: str, label: str | None = None) None
Parameters:
  • column – name of column to be filtered

  • label – text in filter label before column name

display(df: DataFrame) None

Display DataFrame on page

Parameters:

df – pandas DataFrame

filter(df: DataFrame) DataFrame

Filters DataFrame

Parameters:

df – pandas DataFrame

Returns:

Filtered pandas DataFrame

GreaterFilter

class filters.GreaterFilter(column: str, label: str | None = None)

Filter data by low threshold

__init__(column: str, label: str | None = None) None
Parameters:
  • column – name of column to be filtered

  • label – text in filter label before column name

display(df: DataFrame) None

Display DataFrame on page

Parameters:

df – pandas DataFrame

filter(df: DataFrame) DataFrame

Filters DataFrame

Parameters:

df – pandas DataFrame

Returns:

Filtered pandas DataFrame

LessFilter

class filters.LessFilter(column: str, label: str | None = None)

Filter data by high threshold

__init__(column: str, label: str | None = None) None
Parameters:
  • column – name of column to be filtered

  • label – text in filter label before column name

display(df: DataFrame) None

Display DataFrame on page

Parameters:

df – pandas DataFrame

filter(df: DataFrame) DataFrame

Filters DataFrame

Parameters:

df – pandas DataFrame

Returns:

Filtered pandas DataFrame