从Python中的数据框架创建字典

时间:2016-02-01 02:51:20

标签: python dictionary

对于以下数据,如何创建一个字典,其中id为元组[(x,y)]数组的键和值

  id  x  y
0  a  1  2
1  a  2  3
2  b  3  4

预期字典是

{a:[(1,2),(2,3)],b:[(3,4)]}

2 个答案:

答案 0 :(得分:1)

当迭代表时(不管你是这样做)检查id是否已经在dict中并附加到现有值或添加新密钥:

data = {}
for id,x,y in SOURCE:
    if id in data:
        data[id].append((x,y))
    else:
        data[id] = [(x,y)]

答案 1 :(得分:1)

@ tadhg-mcdonald-jensen提供的解决方案似乎是利用默认指令的绝佳机会:

from collections import defaultdict

data = defaultdict(list)

with open(SOURCE_FILE_NAME) as source:
    for line in source:
        id, x, y = line.rstrip().split()
        data[id].append((x, y))

这避免了设置或追加的决定 - 只需追加并让defaultdict为你做正确的事。