Python:使用Excel文件中的数据创build一个字典

我对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 

我想创build一个字典,作为关键的Id和对象和价值千克(例如{(1142, Apple) : 17,5, (1142, Banana) : 13,55, ...}

有没有办法创build这样的字典? 我应该input什么模块? 提前致谢!

 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'。 如果你需要的话改变它。

当我用这个作为input文件时:

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

这是输出:

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

你可以使用它的pandas。 我会做:

 import pandas as pd d = pd.read_excel(r"excel_file.xlsx",index_col=[0,1]).to_dict(orient='index') for key in d: d[key] = d[key].values()[0] print d 

输出是这样的:

 {(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}