Python:使用excel文件中的数据创建字典

时间:2017-05-19 14:43:23

标签: python excel python-2.7 dictionary

我对Python和编程非常陌生,我遇到了一个无法解决的问题。 我有一个包含3列的excel文件:

Id      Object     kg
1142     Apple     17,5
1142     Banana    13,55
1142     Kiwi      52,3
1255     Apple     77,38
1255     Banana    99,42
1255     Kiwi      128,35

我想创建一个字典,其中包含Id和Object的关键字以及值kg(例如{(1142, Apple) : 17,5, (1142, Banana) : 13,55, ...}

有没有办法创建这样的字典?我应该导入什么模块?提前谢谢!

3 个答案:

答案 0 :(得分:2)

import csv
d = {}
with open('input.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:  # type(row) = <list>
        d[(row[0], row[1])] = row[2]

print(d)

请注意,我将csv分隔符设置为',',文件名设置为'input.csv'。如果需要,可以更改它。

当我用它作为输入文件时:

1142,Apple,17
1143,Banana,13
1144,Kiwi,52

这是输出:

{('1143', 'Banana'): '13', ('1142', 'Apple'): '17', ('1144', 'Kiwi'): '52'}

答案 1 :(得分:2)

你可以在上面使用熊猫。我会这样做:

{(1255L, u'Kiwi'): 128.34999999999999, (1142L, u'Apple'): 17.5, (1255L, u'Apple'): 77.379999999999995, (1142L, u'Banana'): 13.550000000000001, (1255L, u'Banana'): 99.420000000000002, (1142L, u'Kiwi'): 52.299999999999997}

输出类似于:

SupervisorID

答案 2 :(得分:0)

这是我的答案

d = pd.read_excel('Name of File', engine='openpyxl')
d = d.set_index(['ID', 'Object'])["kg"].to_dict()

输出应该是

{('1143', 'Banana'): '13', ('1142', 'Apple'): '17', ('1144', 'Kiwi'): '52'}