根据ipywidgets中另一个下拉菜单的选择更新下拉菜单

3
我有一个下拉菜单,显示一些可能的“周期”。这些实际上是包含一些数据的.csv文件。然后我有另一个下拉菜单,应该显示这个.CSV文件中的所有变量。因此,第二个下拉菜单应根据在第一个下拉菜单中选择的文件进行更新。我找到了一个类似的问题,并尝试实现它,但它没有工作。第二个下拉菜单仍然是空的。请注意,我使用pyspark读取.CSV文件。Cycles是包含我工作目录中所有.csv文件的元组。
scW1 = widgets.Dropdown(description = 'Select file',options = cycles)
scW2 = widgets.Dropdown(description = 'Select variable')

def plotvar(sender):
    df=sc.textFile(str(scW1.value)).map(lambda x: x.split(','))
    header = tuple(df.first())
    print(header)
    with scW2.hold_trait_notifications():
        scW2.options = header

display(scW1)
display(scW2)

出了什么问题?

1个回答

2

哇,已经找了4年,但是我终于找到了......

from IPython.display import display
from ipywidgets import Dropdown

def dropdown_eventhandler(change):
    determine(dropdown.value)
#     print(change.new)

option_list = (1, 2)
dep_1 = (1, 1)
dep_2 = (2, 2)

def determine(x):
    if x == 1:
        dropdown_dep.options = dep_1
    else:
        dropdown_dep.options = dep_2

dropdown = Dropdown(description="Choose one:", options=option_list)
dropdown_dep = Dropdown(description="Choose one:")
dropdown.observe(dropdown_eventhandler, names='value')
display(dropdown, dropdown_dep)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接