在散景中创建选择列表时出错

时间:2018-06-19 15:27:06

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

我正在尝试创建一个由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) (Ether(Int,String)(,String)))),获得Select(description ='Tech Firms',options = ....)以及tech_firms中所有名称的列表< / p>

#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')

2 个答案:

答案 0 :(得分:0)

我找到的解决方案是,我不必要将dataframe列指定为列表。显然,由于某种原因,这是行不通的。

我的解决方案是创建一个新的var,但不包含以下tech_firms_list = tech_firms['Company Name'].unique()

所投射的列表

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

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

显然,列表强制转换引起了一些问题。如果有人确切知道为什么会发生这种情况,请让我知道我想对这些机制有深刻的了解。

答案 1 :(得分:0)

当您的唯一列表中有 na 时,它不起作用。所以在调用 na 之前先删除 unique()

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