繁体   English   中英

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

[英]Python: create a dictionary using data from excel file

我对 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 为键,并作为值 th kg(例如{(1142, Apple) : 17,5, (1142, Banana) : 13,55, ...}

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

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

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}
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'}

这是我的回答

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'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM