отображать данные после фильтрации строк из выпадающего списка в тире - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в Dash. Я хотел бы создать приложение, в котором я могу выбрать значения из выпадающего фильтра, отфильтровать набор данных и отобразить таблицу данных. Я использую dash_table.

Мой пример кода приложения приведен ниже. Данные не отображаются. Кто-нибудь знает, что я сделал не так? Как я могу отобразить dash-таблицу в dash-приложении?

import dash
import dash_html_components as html
import dash_core_components as dcc
import dash_table as dt
from dash.dependencies import Input, Output
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')

app = dash.Dash(__name__)



states = df.State.unique().tolist()

app.layout = html.Div(
    children=[
    dcc.Dropdown(
            id='filter_dropdown',
            options=[{'label':st, 'value':st} for st in states],
            value = states[0]
            ),
    dt.DataTable(id='table-container') ]
)

@app.callback(
    Output('table-container', 'data'),
    [Input('filter_dropdown', 'value') ] )
def display_table(state):
    dff = df[df.State==state]
    return dff

if __name__ == '__main__':
    app.run_server(debug=True)

Кстати, кто-нибудь знает, где я могу найти коллекции галереи dash-приложений с кодом ?

1 Ответ

0 голосов
/ 05 ноября 2019

Вы должны установить столбцы вашей таблицы данных и вернуть свой фрейм данных в виде dict в специальной форме. Поэтому измените эти две строки в своем коде, чтобы он работал.

dt.DataTable(id='table-container', columns=[{'id': c, 'name': c} for c in df.columns.values])

return dff.to_dict('records')

Кстати, кто-нибудь знает, где я могу найти коллекции галереи dash-приложений с кодом?

Лучшее место с множеством примеров с кодом - Руководство пользователя Dash . Например, вы можете найти таблицу данных там .

...