【问题标题】:Error Creating Select List in Bokeh在 Bokeh 中创建选择列表时出错
【发布时间】:2018-11-28 15:06:38
【问题描述】:

我正在尝试创建一个 Select 小部件驱动的条形图,并且正在为纯粹实现 Select 小部件的第一部分而苦苦挣扎。

我目前有一个由我生成的公司列表:

tech_firms = list(sorted(tech_valid['Company Name'].unique()))

据我所知,这只是一个列表。当我在 Jupyter 中调试时,我得到了一个列表输出(带有滚动条)

不工作: 以下不起作用,我收到错误:期望 List(Either(String, Tuple(Either(Int, String),String))) 或 Dict(String, List(Either(String, Tuple) 的元素(Either(Int,String)(,String)))),得到 Select(description='Tech Firms', options= ....)tech_firms中的所有名称列表

#drop down population
select = Select(title="Tech Firms", value="Apple", options=tech_firms)
show(widgetbox(select))

如果我尝试以下方法,它会起作用,但它根本不是一个有效的解决方案,因为我在列表中有很多名字,并且随着数据集的变化和发展,很可能会出现新公司而其他公司可能会消失。我错过了什么?

工作:

#drop down population
select = Select(title='Tech Firms', value='Apple', options=['Apple', 'Google', 'DeepMind', 'Amazon'])
show(widgetbox(select))

按要求显示tech_firms 中的一些值: (我从异常中提取了它,以便在抛出过程中按原样显示):

got Select(description='Tech Firms', options=('Apple', 'Amazon', 'DeepMind', 'Google', 'Tesla, Inc.', 'Arlington Corp.', 'YouTube')

【问题讨论】:

  • 你能显示tech_firms中的一些值吗?
  • @zimdero 添加到上面。谢谢!

标签: python pandas jupyter-notebook data-visualization bokeh


【解决方案1】:

我找到的解决方案是我不必要地将数据框列指定为列表。显然,由于某种原因,这不起作用。

我的解决方案是创建一个新的 var,而不使用以下 tech_firms_list = tech_firms['Company Name'].unique() 投射的列表

在创建选择下拉列表后,我在处理 options 参数时通过以下方式对列表进行了排序:

select = Select(title="Tech Firms", value="Amazon Inc.", options=sorted(tech_firms_list))

显然,列表转换作为参数引起了一些问题。如果有人确切知道为什么会发生这种情况,请告诉我,我希望对这些机制有一个深入的了解。

【讨论】:

  • 我意识到这是很久以前的事了,但你有没有破译过这个错误?
  • 为了记录,上面描述的 .unique() 方法对我不起作用。但是,当我将列中的数据从浮点数转换为字符串时,它确实有效。 (即tech_firms['Company Name'].astype(str).unique()
  • @alofgran 不幸的是没有。我在上面发布的内容对我有用,但我不确定为什么会发生错误。对我来说,没有什么明显的东西会引发这种例外。
【解决方案2】:

当您的唯一列表中有na 时,它不起作用。因此,在致电 unique() 之前,请放弃 na

tech_valid.dropna()
tech_valid['Company Name'].unique().tolist()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2011-10-18
    • 1970-01-01
    • 2021-04-30
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多