【问题标题】:Updating pandas Dictionary Python while looping循环时更新熊猫字典Python
【发布时间】:2020-05-26 12:04:45
【问题描述】:

我正在尝试在python 中实现dash component - dropdown menu

根据dash:

我的option 参数需要遵循这个模式:

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

我有兴趣在我的pandas dataframe 中使用带有公司名称的column 作为dropdown

所以我意识到我可以利用python dictionaries

mydict = {}
option = []

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

printing option 结果符合我的预期,但公司名称列中只有第一个 company。它自始至终重复了这一点。我的操作出了什么问题?

【问题讨论】:

    标签: python python-3.x pandas dataframe plotly-dash


    【解决方案1】:

    你有python列表只存储references的问题。由于您只有一本字典,因此列表中的所有元素(参考)都将指向同一个字典。您必须为每个选项创建一个新字典:

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

    【讨论】:

      【解决方案2】:

      我喜欢为此使用单行:

      options = [{"label":x, "value":x} for x in df.company]
      

      【讨论】:

        猜你喜欢
        • 2020-11-25
        • 1970-01-01
        • 2018-01-26
        • 2018-09-29
        • 2020-03-14
        • 1970-01-01
        • 2021-08-10
        • 2017-10-12
        • 2021-01-09
        相关资源
        最近更新 更多