繁体   English   中英

python从excel创建字典

[英]python creating dictionary from excel

我有一个 2 列的 excel 表。 第 1 列是姓名,第 2 列是年龄。 我想创建一个字典,其中名称是键,年龄是值。 这是代码,但它错误地创建了字典。

keyValues = [x.value for x in worksheet.col(0)]
data = dict((x, []) for x in keyValues)
while curr_row < num_rows:
        curr_row += 1
        for row_index in range(1, worksheet.nrows):  data[keyValues[row_index]].append(worksheet.cell_value(curr_row, 1))

我想要一个像下面这样来自 2 列 excel 表的字典。

{'Ann': 12, 'Maria': 3, 'Robin': 4, 'NameN':N} 

对熊猫来说这很简单:

import pandas as pd
my_dic = pd.read_excel('names.xlsx', index_col=0).to_dict()

my_dic 现在是:

{'罗宾':4,'玛丽亚':3,'安':12}

index_col=0如果 'name' 在你的 excel 文件的第一列

如果您的列不包含姓名和年龄以外的任何数据,并且您对数据质量非常有信心(年龄应该是非数字数据等),那么您可以这样做:

names = (name.value for name in worksheet.col(0))
ages = (int(age.value) for age in worksheet.col(1))
data = dict(zip(names, ages))

如果你想保证订单,你可以使用一个collections.OrderedDict为对象data ,而不是香草字典。

如果您需要处理错误数据(即有人在工作表中输入字符串而不是整数年龄),您可能需要提出namesages生成器对象的自定义实现(上述假设一帆风顺)。

暂无
暂无

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

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