【问题标题】:turn three columns into dictionary python将三列变成字典python
【发布时间】:2020-01-02 06:57:50
【问题描述】:
Name = [list(['Amy', 'A', 'Angu']),
          list(['Jon', 'Johnson']),
          list(['Bob', 'Barker'])]

Other =  [list(['Amy', 'Any', 'Anguish']),
        list(['Jon', 'Jan']),
        list(['Baker', 'barker'])]

import pandas as pd
df = pd.DataFrame({'Other' : Other,  
                  'ID': ['E123','E456','E789'], 
                  'Other_ID': ['A123','A456','A789'],
                  'Name' : Name,

                 })

    ID              Name    Other               Other_ID
0   E123    [Amy, A, Angu]  [Amy, Any, Anguish] A123
1   E456    [Jon, Johnson]  [Jon, Jan]          A456
2   E789    [Bob, Barker]   [Baker, barker]     A789

我有上面看到的df。我想将列IDNameOther 放入字典中,它们的键为ID。我根据python pandas dataframe columns convert to dict key and value尝试了这个

todict = dict(zip(df.ID, df.Name))

这和我想要的很接近

{'E123': ['Amy', 'A', 'Angu'],
 'E456': ['Jon', 'Johnson'],
 'E789': ['Bob', 'Barker']}

但我想获得包含来自Other 列的值的输出

{'E123': ['Amy', 'A', 'Angu','Amy', 'Any','Anguish'],
 'E456': ['Jon', 'Johnson','Jon','Jan'],
'E789':  ['Bob', 'Barker','Baker','barker']
}

如果我把第三列放在Other 它会给我错误

todict = dict(zip(df.ID, df.Name, df.Other))

如何获得我想要的输出?

【问题讨论】:

    标签: python-3.x pandas list dictionary zip


    【解决方案1】:

    为什么不在创建Name 列的字典之前将NameOther 列组合起来。

    df['Name'] = df['Name'] + df['Other']
    
    dict(zip(df.ID, df.Name))
    

    给予

    {'E123': ['Amy', 'A', 'Angu', 'Amy', 'Any', 'Anguish'],
     'E456': ['Jon', 'Johnson', 'Jon', 'Jan'],
     'E789': ['Bob', 'Barker', 'Baker', 'barker']}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2016-01-03
      • 2022-11-16
      • 2018-07-29
      • 2022-11-30
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多