我正在尝试创建一个由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')
答案 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()