Сортировка выпадающего - PullRequest
0 голосов
/ 14 декабря 2018

Я заполняю раскрывающийся список с уникальными значениями из CSV-файла, но значения не сортируются.Я пытался использовать listname.sort (), но получаю следующее сообщение об ошибке:

TypeError: '<' not supported between instances of 'dict' and 'dict'

Код:

df = pd.read_csv('Data/ItemList.csv', delimiter=',', encoding="utf-8-sig")
options = []
for item in df['Item Name'].unique():
    options.append({'label':str(item),'value':item})
soptions = options.sort()

html.Div([
    html.H3('Select crime :', style={'paddingRight':'30px'}),
    dcc.Dropdown(
        id='my_crime_picker',
        options=soptions,
        value=['Burglery'],
        multi=True
    )
], style={'display':'inline-block', 'verticalAlign':'top', 'width':'30%'})

Надеюсь, это легко для гуру Python.

1 Ответ

0 голосов
/ 14 декабря 2018

Попробуйте определить options следующим образом:

options = [{'label': i, 'value': i} for i in df['Item Name'].unique().sort_values()]

Таким образом, ваш измененный код будет:

df = pd.read_csv('Data/ItemList.csv', delimiter=',', encoding="utf-8-sig")

html.Div([
    html.H3('Select crime :', style={'paddingRight':'30px'}),
    dcc.Dropdown(
        id='my_crime_picker',
        options=[{'label': i, 'value': i} for i in df['Item Name'].unique().sort()],
        value=['Burglary'],
        multi=True
    )
], style={'display':'inline-block', 'verticalAlign':'top', 'width':'30%'})
...