Как найти n-й элемент объекта bokeh.core.property.containers.PropertyValueColumnData в python? - PullRequest
0 голосов
/ 12 апреля 2020

Я создаю интерактивный график с использованием сервера bokeh / bokeh, и мои исходные данные поступают из ColumnDataSource. Я реализовал инструмент нажатия, и к выбранному значению можно получить доступ через «sample_missing_source.selected.indices», который возвращает индекс n исходных данных. Я хочу использовать выбранное значение, чтобы изменить другой график. Однако я не могу перебрать sample_missing_source.data для получения данных для n-го элемента.

selected = source.selected.indices
print(selected)
[14]

source.data=ColumnDataSource.from_df(df.loc[(df.id == 'test_000') & (df.file == 'test_data.csv')])

print(source.data)
{'completed': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64),
 'interval': array(['97', '97', '97', '97', '97', '97', '97', '97', '97', '97', '97',
        '97', '97', '97', '97'], dtype=object),
 'missing': array([ 3,  3,  4,  4, 14,  3,  3,  4,  4, 14,  3,  3,  4,  4, 14],
       dtype=int64),
 'month': array(['44', '44', '44', '44', '44', '46', '46', '46', '46', '46', '72',
        '72', '72', '72', '72'], dtype=object),
 'file': array(['lfq_aggregate.csv', 'lfq_aggregate.csv', 'lfq_aggregate.csv',
        'lfq_aggregate.csv', 'lfq_aggregate.csv', 'lfq_aggregate.csv',
        'lfq_aggregate.csv', 'lfq_aggregate.csv', 'lfq_aggregate.csv',
        'lfq_aggregate.csv', 'lfq_aggregate.csv', 'lfq_aggregate.csv',
        'lfq_aggregate.csv', 'lfq_aggregate.csv', 'lfq_aggregate.csv'],
       dtype=object),
 'id': array(['2613001', '2613001', '2613001', '2613001', '2613001', '2613001',
        '2613001', '2613001', '2613001', '2613001', '2613001', '2613001',
        '2613001', '2613001', '2613001'], dtype=object),
 'total': array([ 3,  3,  4,  4, 14,  3,  3,  4,  4, 14,  3,  3,  4,  4, 14],
       dtype=int64),
 'value': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64),
 'variable': array(['lfq_leis_frnd_scr_missing', 'lfq_leis_fam_scr_missing',
        'lfq_duties_home_scr_missing', 'lfq_duties_oth_scr_missing',
        'lfq_missing', 'lfq_leis_frnd_scr_missing',
        'lfq_leis_fam_scr_missing', 'lfq_duties_home_scr_missing',
        'lfq_duties_oth_scr_missing', 'lfq_missing',
        'lfq_leis_frnd_scr_missing', 'lfq_leis_fam_scr_missing',
        'lfq_duties_home_scr_missing', 'lfq_duties_oth_scr_missing',
        'lfq_missing'], dtype=object),
 'index': array([105808, 106679, 107519, 108471, 109505, 110460, 111346, 112207,
        113171, 114204, 174328, 175392, 176428, 177561, 178734])}

Мне интересно получить n-й элемент (в данном случае 14-й элемент) каждого массива этого объекта , Есть идеи?

1 Ответ

0 голосов
/ 12 апреля 2020

PropertyValueColumnData наследует обычный dict и сохраняет его семантику, поэтому вы можете использовать его как обычный словарь:

idx = selected[0]
row = {c: v[idx] for c, v in source.data.items()}

Если вам нужно, вы можете преобразовать его в pandas.Series с помощью просто звоню Series(row).

...