首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Holoviz面板下拉值查询数据框

使用Holoviz面板下拉值查询数据框
EN

Stack Overflow用户
提问于 2020-04-03 01:30:21
回答 1查看 281关注 0票数 1

我正在尝试使用Holoviz Panel的dropdown小部件值来查询数据帧。但是,dataframe并不反映下拉值的变化。我添加了一个markdown小部件来检查是否捕获了DropDown值中的更改-似乎是这样。但是,我不知道如何更新数据帧。我是一个完全的编程初学者,只是在努力学习。任何帮助都是非常感谢的。

代码语言:javascript
复制
import pandas as pd
import panel as pn
pn.extension()

# Dataframe

df = pd.DataFrame({'CcyPair':['EUR/USD', 'AUD/USD' ,'USD/JPY'], 
                   'Requester':['Client1', 'Client2' ,'Client3'],
                  'Provider':['LP1', 'LP2' ,'LP3']})

# Dropdown

a2 = pn.widgets.Select(options=list(df.Provider.unique()))

# Query dataframe based on value in Provider dropdown

def query(x=a2):
    y = pn.widgets.DataFrame(df[(df.Provider==x)])
    return y

# Test Markdown Panel to check if the dropdown change returns value

s = pn.pane.Markdown(object='')

# Register watcher and define callback

w = a2.param.watch(callback, ['value'], onlychanged=False)

def callback(*events):
    print(events)
    for event in events:
        if event.name == 'value':
            df1 = query(event.new)
            s.object = event.new

# Display Output

pn.Column(query, s)

Output Image

EN

回答 1

Stack Overflow用户

发布于 2020-04-03 02:23:43

弄明白了,原来我只需要在查询函数上添加@pn.depends。一旦我添加了pn.depends( a2,watch=True),就会根据a2输入过滤数据帧。回调和监视器是不必要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60997555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档