我对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, ...}
有没有办法创建这样的字典?我应该导入什么模块?提前谢谢!
答案 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'}