Dash Python实时更新表

时间:2019-12-04 08:50:07

标签: python pandas visualization dashboard

我的Dash中有DatePickerRange和DataTable,更改DatePickerRange时需要实时更新DataTable。 我有代码:

dcc.DatePickerRange(
  id = "date-picker-range",
  start_date = ("2019-3-1"),
 end_date_placeholder_text="Select a date!"
),
    dash_table.DataTable(
    id='table',
    columns=[{"name": i, "id": i} for i in df.columns],
    data=df.to_dict('records'),

我尝试过:

mask = (df['data'] > start_date) & (df['data'] <= end_date_placeholder_text)
df.loc[mask]

但是它不起作用:NameError:名称'start_date'未定义

1 个答案:

答案 0 :(得分:0)

您在哪里尝试更新DataTable?它应该在回调函数中。在不了解更多代码和应用程​​序的情况下,回调函数的结构应如下所示:

#define or import 'df' here
@app.callback(
    dash.dependencies.Output('table', 'data'),
    [dash.dependencies.Input('date-picker-range', 'start_date'),
     dash.dependencies.Input('date-picker-range', 'end_date_placeholder_text')])
def update_output(start_date, end_date):
    #or defined 'df' here
    mask = (df['data'] > start_date) & (df['data'] <= end_date_placeholder_text)
    return df.loc[mask].to_dict('records')