如何将DataFrame列项设为ipywidgets下拉选单选项?
用ipywidgets下拉框实现香水推荐的交互式选择
直接将DataFrame目标列的内容作为下拉框选项,绑定交互逻辑即可,具体代码如下:
import ipywidgets as widgets from IPython.display import display # 创建下拉框,选项为DataFrame中Name列的内容 perfume_dropdown = widgets.Dropdown( options=name_df['Name'].tolist(), # 把Name列转为列表作为下拉选项 value='Sola Parfum', # 设置默认选中的香水 description='选择香水:', disabled=False, ) # 定义选择后的推荐处理函数 def on_perfume_selected(change): input_perfume = change['new'] # 执行原有推荐逻辑 recommendations = pd.DataFrame(name_df.nlargest(6, input_perfume)['Name']) recommendations = recommendations[recommendations['Name'] != input_perfume] print(f"基于 {input_perfume},为你推荐以下5款香水: ") print(recommendations) # 绑定下拉框的选中值变化事件 perfume_dropdown.observe(on_perfume_selected, names='value') # 显示下拉框组件 display(perfume_dropdown)
代码说明:
options=name_df['Name'].tolist():直接提取DataFrame中Name列的所有内容作为下拉选项,无需手动维护选项列表observe方法监听下拉框选中值的变化,自动触发处理函数更新推荐结果- 处理函数内复用原有推荐逻辑,将手动赋值的
input_perfume替换为下拉框的选中值
内容的提问来源于stack exchange,提问作者user24839487
相关产品推荐
相关产品推荐

