ipywdigets中的下拉菜单

如何解决ipywdigets中的下拉菜单

我想使用ipywidgets添加一个下拉框。我有一个带有Pandas DataFrame的函数,想通过下拉菜单选择要显示的行数。我有这个:

get_forwards = interactive(
    get_forwards,{"manual": True,"manual_name": "Forwards"},)
get_forwards

与此:

widgets = [get_squad,get_goalkeepers,get_defenders,get_midfielders,get_forwards]
names = ["squad","Goalkeepers","Defenders","Midfielders","Forwards"]
view = Tab(widgets)
for i in range (len(view.children)):
    view.set_title(i,names[i])
view

如果可能的话,我想在每个标签添加一个下拉框。有人可以帮忙吗?

解决方法

我怀疑您因建立互动而陷入困境。我们将深入探讨如何解决编程中这一具有挑战性但又令人兴奋的方面。

第1步:创建示例数据
如果我们能模仿您期望的结果,那么我们这里的人们将无济于事。我在下面为您创建了一个示例。

import pandas as pd

data = [
        {"Position":"Goalkeeper","Name":"Sam","Team":"Blue"},{"Position":"Defender","Name":"Rob",{"Position":"Goalkeeper","Name":"Sara","Team":"Red"},"Name":"Sue","Name":"Alex","Team":"Orange"},"Name":"Amy","Name":"Fifi","Team":"Purple"},"Name":"Farrell",]
df = pd.DataFrame.from_records(data)

第2步:为要过滤的字段构建交互式小部件
当然,您可以将它们添加到interact方法中,但这不是最佳实践+它不能提供精细的控制。这是我为您构建的一些小部件:

from ipywidgets import widgets

# Multi-Select
position_widget = widgets.SelectMultiple(
    options=df["Position"].unique(),value=[df["Position"].unique()[1]],description="Position",)

team_widget = widgets.SelectMultiple(
    options=df["Team"].unique(),value=[df["Team"].unique()[1]],description="Team",)

# Choose how many rows you want
n_widget = widgets.IntSlider(
    value=len(df),min=1,max=len(df),step=1,description='Max rows?',disabled=False,continuous_update=False,# Only update when the user has released the slider
    style={'description_width': 'initial'} # allow the long description
)

第3步:定义交互式视图
在这里,您可以将小部件与功能进行匹配。注意,我正在做一个非常简单的选择操作。您在这里不受任何限制。

from IPython.display import display

def show_df(n=n_widget,team=team_widget,position=position_widget):
  # Filter – Be sure NOT to overwrite your data
  df_filtered = df[(df["Team"].isin(team) & df["Position"].isin(position))].head(n)
  display(df_filtered) # this will display your dataframe nicely

第4步:调用交互式功能
本质上,您是在显示小工具。

my_gadget = widgets.interact(show_df)

display(my_gadget)

知道了!

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?