Python-带多个输入的破折号输出-值错误

Python-带多个输入的破折号输出-值错误,python,plotly-dash,Python,Plotly Dash,旨在根据选定的值显示timeseries与收入的折线图-类似于excel中的透视图。我有三个标准和多选择下拉菜单工作良好;但是,更新图表时出现回调错误:ValueError:无法接受列引用列表或x和y的列列表 我想这可能与我如何过滤熊猫数据帧并加载到图表中有关。代码如下: import dash from dash.dependencies import Input, Output import plotly.express as px import dash_core_components a

旨在根据选定的值显示timeseries与收入的折线图-类似于excel中的透视图。我有三个标准和多选择下拉菜单工作良好;但是,更新图表时出现回调错误:ValueError:无法接受列引用列表或
x
y
的列列表

我想这可能与我如何过滤熊猫数据帧并加载到图表中有关。代码如下:

import dash
from dash.dependencies import Input, Output
import plotly.express as px
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import numpy as np

df = pd.read_csv('ExampleDataPullv2.csv')
df.index = pd.to_datetime(df['ServiceDate'])

app = dash.Dash(__name__)
app.config.suppress_callback_exceptions = True

def get_options(data_field):
    dict_list = []
    for i in data_field:
        dict_list.append({'label': i, 'value': i})
    dict_list = sorted(dict_list, key = lambda i: i['label'])
    return dict_list

app.layout = html.Div([
    html.Div(
        [
            html.P('Locations:'),
            dcc.Dropdown(
                id = 'location-dropdown',
                options = get_options(df['LocationName'].unique()),
                multi = True,
                value = ''
            )
        ]
    ),
    html.Div(
        [
            html.P('Payor:'),
            dcc.Dropdown(
                id = 'payor-dropdown',
                options = get_options(df['Payor'].unique()),
                multi = True,
                value = ''
            )
        ]
    ),
    html.Div(
        [
            html.P('Paid Claim:'),
            dcc.Dropdown(
                id = 'paidclaim-dropdown',
                options = get_options(df['PaidClaim'].unique()),
                value = ''
            )
        ]
    ),
    html.Div(
        [
            dcc.Graph(id = 'output-graph')
        ]
    ),
])

@app.callback(
    Output('output-graph', 'figure'),
    [
        Input('location-dropdown', 'value'),
        Input('payor-dropdown', 'value'),
        Input('paidclaim-dropdown', 'value'),
    ]
)

def update_graph(locations, payors, paidclaims):
    sub_df = df[df.LocationName.isin([locations]) & df.Payor.isin([payors]) & df.PaidClaim.isin([paidclaims])]

    figure = px.scatter(sub_df, x = sub_df.index, y = sub_df.Revenue)

    return figure

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