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