我正在尝试创建一个包含多个数据的交互式散景图,但我不确定为什么会出现错误ValueError: 期望 ColumnData(String, Seq(Any)) 的元素,得到 {'x': 6.794, 'y': 46.8339999999999, 'country': 'Congo, Dem. 代表','流行':3.5083789999999997,'地区':'撒哈拉以南非洲'}source = ColumnDataSource(data={'x' : data.loc[1970].fertility,'y' : data.loc[1970].life,'pop' : (data.loc[1970].population / 20000000) + 2,'region' : data.loc[1970].region,})我通过从 excel 导入数据尝试了两个不同的数据集,但一直没有关于为什么会发生这种情况的问题。
3 回答

智慧大石
TA贡献1946条经验 获得超3个赞
顾名思义,它ColumnDataSource
是一种用于存储数据列的数据结构。这意味着每个键的值.data
必须是一个列,即一个 Python 列表、一个 NumPy 数组或一个 Pandas 系列。但是您正在尝试将纯数字分配为值,这就是错误消息告诉您的内容:
我正在尝试创建一个包含多个数据的交互式散景图,但我不确定为什么会出现错误
期望 ColumnData(String, Seq(Any)) 的元素
这是说可接受的,预期值是将字符串映射到序列的字典。但你通过的显然不是:
得到 {'x': 6.794, 'y': 46.83399999999999, 'country': 'Congo, Dem. 代表','流行':3.5083789999999997,'地区':'撒哈拉以南非洲'}
x
例如,该值只是数字 6.794 而不是数组或列表等。

慕田峪7331174
TA贡献1828条经验 获得超13个赞
你可以很容易地做到这一点:
source = ColumnDataSource({str(c): v.values for c, v in df.items()})
添加回答
举报
0/150
提交
取消