将三列变成字典python
Posted
技术标签:
【中文标题】将三列变成字典python【英文标题】:turn three columns into dictionary 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。我想将列ID
、Name
和Other
放入字典中,它们的键为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))
如何获得我想要的输出?
【问题讨论】:
【参考方案1】:为什么不在创建Name
列的字典之前将Name
和Other
列组合起来。
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']
【讨论】:
以上是关于将三列变成字典python的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Cypher neo4j 将三列连接为一列并获取其中唯一条目的计数?
如何从具有不同数量和索引顺序的三组字典中制作包含三列的条形图?