Обновление pandas словаря Python во время цикла - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь реализовать dash component - dropdown menu в python:

Согласно da sh:

my Параметр option должен соответствовать следующему шаблону:

options=[
    {'label': 'New York City', 'value': 'NYC'},
    {'label': 'Montréal', 'value': 'MTL'},
    {'label': 'San Francisco', 'value': 'SF'}
],
value='MTL')  

Мне интересно использовать column с названиями компаний в моем pandas dataframe как dropdown

Итак, я понял что я мог бы использовать для результатов python dictionaries:

mydict = {}
option = []

for comp in df.company:
    mydict["label"] = comp 
    mydict["value"] = comp 
    option.append(mydict)

printing option, что я ожидал, но только с первым company в столбце названия компании. Это повторялось все время. Что не так с моей операцией?

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Мне нравится использовать для этого однострочник:

options = [{"label":x, "value":x} for x in df.company]
1 голос
/ 26 мая 2020

У вас проблема, что python списки хранят только ссылки . Поскольку у вас есть только один словарь, все элементы (ссылки) в вашем списке будут указывать на один и тот же словарь. Вам необходимо создать новый словарь для каждой опции:

option = []

for comp in df.company:
    mydict = {}
    mydict["label"] = comp 
    mydict["value"] = comp 
    option.append(mydict)
...