-1

我正在使用散景/散景服务器创建交互式图表,我的源数据来自 ColumnDataSource。我实现了一个点击工具,可以通过返回源数据索引 n 的“sample_missing_source.selected.indices”访问所选值。我想使用选定的值来更改另一个图表。但是,我无法遍历 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 个元素)。有任何想法吗?

4

1 回答 1

0

PropertyValueColumnData继承常规dict并保持其语义,因此您可以将其用作常规字典:

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

如果需要,您可以pandas.Series通过调用将其转换为Series(row).

于 2020-04-12T03:54:13.853 回答