Dash: Pandas фильтрация строк
Имею следующий код:
@app.callback(
dash.dependencies.Output('table_', 'children'),
dash.dependencies.Input('dropdown', 'value'),
dash.dependencies.Input('dropdown1', 'value'),
dash.dependencies.Input('dropdown2', 'value'))
def display_table(dropdown_value, dropdown_value1, dropdown_value2):
if dropdown_value is None and dropdown_value1 is None and dropdown_value2 is None:
return generate_tb(df)
if dropdown_value is not None and dropdown_value1 is not None:
dff = df.loc[(df.country.astype(str).str.contains('|'.join(str(v) for v in dropdown_value))) &
(df['product'].astype(str).str.contains('|'.join(str(v) for v in dropdown_value1)))]
return generate_tb(dff)
if dropdown_value is not None and dropdown_value2 is not None:
dff = df.loc[(df.country.astype(str).str.contains('|'.join(str(v) for v in dropdown_value))) &
(df.choice.astype(str).str.contains('|'.join(str(v) for v in dropdown_value2)))]
return generate_tb(dff)
if dropdown_value1 is not None and dropdown_value2 is not None:
dff = df.loc[(df['product'].astype(str).str.contains('|'.join(str(v) for v in dropdown_value1))) &
(df.choice.astype(str).str.contains('|'.join(str(v) for v in dropdown_value2)))]
return generate_tb(dff)
if dropdown_value is not None and dropdown_value1 is not None and dropdown_value2 is not None:
dff = df.loc[(df.country.astype(str).str.contains('|'.join(str(v) for v in dropdown_value))) &
(df['product'].astype(str).str.contains('|'.join(str(v) for v in dropdown_value1))) &
(df.choice.astype(str).str.contains('|'.join(str(v) for v in dropdown_value2)))]
return generate_tb(dff)
if dropdown_value is not None:
dff = df.loc[df.country.astype(str).str.contains('|'.join(str(v) for v in dropdown_value))]
return generate_tb(dff)
if dropdown_value2 is not None:
dff = df.loc[df.choice.astype(str).str.contains('|'.join(str(v) for v in dropdown_value2))]
return generate_tb(dff)
if dropdown_value1 is not None:
dff = df.loc[df['product'].astype(str).str.contains('|'.join(str(v) for v in dropdown_value1))]
return generate_tb(dff)
исходный df имеет следующий вид:
country | product |choice
qwe rty yui
asd fgh fgt
переменные dropdown_value, dropdown_value1, dropdown_value2собираются из выпадающего списка, соответсвенно в переменных может быть выбрано одно значение или несколько, на данный момент сталкиваюсь с проблемой при фильтрации с использованием dropdown2 в связки с остальными не срабатывает, просьба подсказать в чем может быть проблема?
Также, есть ли еще какие варианты для реализации подобного функицонала?
Спасибо!