谷歌让我失望了,所以希望有人能帮助我。
我正在使用 Jupyter 笔记本。我有一个数据框,并且正在尝试设置交互式小部件来对该数据框进行排序。
数据框是关于运动员的。我正在尝试按运动员姓名对数据框进行排序,然后按运动员参加的学科对其进行排序。所以,我希望能够选择“Jon”,然后在选择“Jon”之后,我希望能够缩小返回的数据范围,以便我可以查看“乔恩”的三级跳远(并且只有三级跳远)(如果选择),但如果我选择该选项,则可以切换到查看“乔恩的”跳远成绩。
data = pd.read_csv("Athlete Rank Moments.csv", encoding = "latin-1", usecols = [0, 1, 2, 4, 5, 16],
parse_dates = True, infer_datetime_format = True)
data["RankDate"] = pd.to_datetime(data["RankDate"], errors="coerce")
items = ['All']+sorted(data["Person/Team"].unique().tolist())
discipline_items = ['All']+sorted(data["Discipline"].unique().tolist())
def view(x='', y=''):
if x == 'All': return data
return data[data['Person/Team','Discipline']==x]
w = widgets.Select(options=items)
z = widgets.Select(options = discipline_items)
v = interact(view, x=w, y=z)
display(v)
这段代码给了我两个下拉菜单,但是“discipline_list”的下拉菜单根本不会改变返回的数据。很明显,这是因为视图函数没有对它做任何事情,但我不知道在视图函数中写什么才能得到我想要的结果。任何帮助,将不胜感激!