【发布时间】:2021-05-20 17:19:57
【问题描述】:
我真的很困惑。第一次使用下拉小部件,如果这很明显,请原谅我,并感谢您提供的任何帮助。
这是我要显示的数据框及其构建方式:
def top_10_venues(data) :
num_top_venues = 10
indicators = ['st', 'nd', 'rd']
# create columns according to number of top venues
columns = ['Neighborhood']
for ind in np.arange(num_top_venues):
try:
columns.append('{}{} Most Common Venue'.format(ind+1, indicators[ind]))
except:
columns.append('{}th Most Common Venue'.format(ind+1))
# create a new dataframe
neighborhoods_venues_sorted = pd.DataFrame(columns=columns)
neighborhoods_venues_sorted['Neighborhood'] = data['Neighborhood']
for ind in np.arange(denver_grouped.shape[0]):
neighborhoods_venues_sorted.iloc[ind, 1:] = return_most_common_venues(data.iloc[ind, :], num_top_venues)
neighborhoods_venues_sorted = neighborhoods_venues_sorted.set_index(['Neighborhood'])
top_10_venues(denver_grouped)
neighborhoods_venues_sorted
这是我的下拉小部件:
#Experimenting with Jupyter dropdown
filtered_df = None
dropdown = widgets.SelectMultiple(
options=neighborhoods_venues_sorted.index,
description='Venue',
disabled=False,
layout={'height':'100px', 'width':'40%'})
def max_density(widget):
global filtered_df
selection = list(widget['new'])
with out:
clear_output()
display(neighborhoods_venues_sorted[selection])
filtered_df = neighborhoods_venues_sorted[selection]
out = widgets.Output()
dropdown.observe(filter_dataframe, names='value')
display(dropdown)
display(out)
这是我最终看到的,我运行该函数的未格式化数据框?
【问题讨论】:
-
与你得到的结果相比,我真的很难理解你想要的结果。在你的 max_density 函数中,添加一个
print(selection)语句并显示结果?请让您的代码复制粘贴可运行,您可以从字典等创建数据框吗? -
会做的,感谢您的意见。不明白为什么denver_neighnorhoods_sorted本身的输出是排好列的dataframe,而下拉出来的dataframe不一样?
标签: python drop-down-menu jupyter-notebook ipywidgets