问题描述
我正在使用Holoviz软件包组来创建仪表板。我的目标是让一个数据框充当参数/部件,以便在一个数据框中选择一行将过滤第二个数据框。
我一直在使用以下格式:
import param
import pandas as pd
import panel as pn
# just making two different sample dataframes
df = pd.util.testing.makeMixedDataFrame()
df2 = pd.util.testing.makeMixedDataFrame().sort_values(by='B').reset_index(drop=True)
class Dashboard(param.Parameterized):
df_selector = param.DataFrame(df)
@param.depends('df_selector')
def filter_df(self):
# just trying to filter the rows in the second df for the selected index values in the first df
# the .selection behavior I am looking for is from pn.widgets that I discuss below
return df2[df2['A'].isin(self.df_selector.selection)]
def view(self):
return self.filter_df().hvplot.table()
dash = Dashboard()
pn.Column(dash.param,dash.view)
这样做将返回:
AttributeError:“ DataFrame”对象没有属性“选择”
如果df_selector充当DataFrame,这是可以理解的。但是,我可以创建这样的小部件:
df_widget = pn.widgets.DataFrame(df)
当我在结果DataFrame中选择一行时,我可以通过以下方式返回选择的行的索引
df_widget.selection
如何使param.DataFrame()表现得像pn.widget.DataFrame(),或者如何将pn.widget.DataFrame()链接到参数,以便可以实时更新?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)