我是Dash的新手。我想制作一个应用程序,在这里我可以从下拉过滤器中选择值,过滤数据集并显示数据表。我正在使用dash_table。
下面是我的示例应用代码。没有显示数据表。有人知道我做错了吗?如何在仪表板应用程序中渲染仪表板表?
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)
顺便说一句,有人知道我在哪里可以找到带有代码的破折号应用程序库吗?
答案 0 :(得分:0)
您必须设置数据表的列,并以特殊形式将数据帧作为字典返回。因此,请在代码中更改这两行以使其正常工作。
dt.DataTable(id='table-container', columns=[{'id': c, 'name': c} for c in df.columns.values])
return dff.to_dict('records')
顺便说一句,有人知道我在哪里可以找到带有代码的Dash应用程序库的集合吗?
Dash User Guide是带有大量示例代码的最佳场所。例如,您可以找到数据表there。