Я бы хотел выбрать подраздел из списка.
У меня есть такой фрейм данных.
df = pd.DataFrame()
df['People'] = ['Eva', 'John', 'Paul','Mr a', 'Miss b', 'Mrs c' ]
df['Type'] = ['Students', 'Students', 'Students', 'Teachers', 'Teachers', 'Teachers']
Допустим, у нас есть Student
и Teachers
.
select = Select(title="People", options=['Student', 'Teachers' ])
Тогда у нас есть три ученика: Eva
, John
, Paul
и три учителя Mr a
, Miss b
и Mrs c
Как мы можем создатьвторой выбор select2
, который выбирает Eva
, John
, Paul
, если мы выбираем учителей, и Mr a
, Miss b
и Mrs c
, если мы выбираем Teachers
.
select2 = Select(title="Selected", options=[ (`Eva`, `John`, `Paul`), (Mr a`, `Miss b`, `Mrs c`)] ])
Это то, что я имею в виду
select_data = Select(title="Type", options=['None', 'Students', 'Teachers' ], value = '')
dynamic_select = Select(title = 'People', value = '' ,
options = ['None','Eva', 'John', 'Paul','Mr a', 'Miss b', 'Mrs c' ] )
controls = widgetbox(select_data, dynamic_select)
layout = column(row(controls))
def update_layout(attr, old, new):
if select_data.value == 'Students':
dynamic_select = Select(title = 'People', value = '', options = ['Eva', 'John', 'Paul'])
if select_data.value == 'Teachers':
dynamic_select = Select(title = 'People', value = '', options = ['Mr a', 'Miss b', 'Mrs c'])
if select_data.value == 'None':
dynamic_select = Select(title = 'People', value = '', options = ['None'])
select_data.on_change('value', update_layout)
dynamic_select.on_change('value', update_layout)
curdoc().add_root(layout)