Используйте значение раскрывающегося списка Holoviz Panel для запроса данных - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь использовать значение раскрывающегося виджета Holoviz Panel для запроса кадра данных. Тем не менее, датафрейм не отражает изменение выпадающего значения. Я добавил виджет уценки, чтобы проверить, фиксируется ли изменение значения раскрывающегося списка - Кажется, это так. Тем не менее, я не могу понять, как обновить фрейм данных. Я начинающий программист, просто пытаюсь учиться. Любая помощь приветствуется.

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)

Выходное изображение

1 Ответ

0 голосов
/ 02 апреля 2020

Понял, оказалось, что мне просто нужно добавить @ pn.depends над моей функцией запроса. После того как я добавил pn.depends (a2, watch = True), кадр данных был отфильтрован на основе ввода a2. Обратный звонок и наблюдатель были не нужны.

...