Я создал DataTable на основе вывода .describe () с боке, которое обновляется, когда я настраиваю ползунок.Кажется, что все другие столбцы в таблице данных обновляются правильно, однако первый столбец, содержащий имена показателей, исчезает при обратном вызове.То есть заголовок все еще там, однако поле пустое.Как мне исправить это, чтобы столбец меры не стал пустым?
мой код выглядит следующим образом:
def modify_table(doc):
my_cols = ['Tuition Per Student', 'Students', 'Total Tuition', 'Other Revenue', 'Total Revenue', 'Expense', 'Margin']
source = ColumnDataSource(ed_montecarlo(department_data, 'Education and Early Childhood', num=1000, expense_var=.3)[my_cols]. \
describe().iloc[1:,].round(2))
columns = [TableColumn(field='index', title='Measure'),
TableColumn(field='Tuition Per Student', title='Tuition Per Student'),
TableColumn(field='Students', title='Number of Students'),
TableColumn(field='Total Tuition', title='Total Tuition'),
TableColumn(field='Other Revenue', title='Other Revenue'),
TableColumn(field='Total Revenue', title='Total Revenue'),
TableColumn(field='Expense', title='Total Expense'),
TableColumn(field='Margin', title='Margin')]
data_table = DataTable(source=source, columns=columns, index_position=None, width=700)
def callback(attr, old, new):
other_sims = ed_montecarlo(department_data, 'Education and Early Childhood', num=iter_slider.value, expense_var=.3)[my_cols]
other_sims_table = other_sims.describe().iloc[1:,].round(2)
source.data = {
'Measure' : list(other_sims_table.index),
'Tuition Per Student' : list(other_sims_table['Tuition Per Student']),
'Students' : list(other_sims_table['Students']),
'Total Tuition' : list(other_sims_table['Total Tuition']),
'Other Revenue' : list(other_sims_table['Other Revenue']),
'Total Revenue' : list(other_sims_table['Total Revenue']),
'Expense' : list(other_sims_table['Expense']),
'Margin' : list(other_sims_table['Margin']),
}
iter_slider = Slider(start=100, end=5000, step=100, value=1000, title='Number of Iterations')
iter_slider.on_change('value', callback)
widg = widgetbox(iter_slider)
doc.add_root(column(widg, data_table))
show(modify_table)
обратите внимание, что ed_montecarlo - это написанная мною функция, которая возвращает выходные данные из разных итераций моделирования Монте-Карло.Кажется, что все работает, за исключением этого одного столбца.
Вот вывод перед настройкой ползунка:
А вот вывод после:
Любая помощь будет принята с благодарностью.Спасибо!