我有一张有两列的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))
我想要一个像下面这样的字典,来自两列excel表格。
{'Ann': 12, 'Maria': 3, 'Robin': 4, 'NameN':N}
对熊猫来说这很简单:
我现在是:
{'Robin':4,'Maria':3,'Ann':12}
index_col=0
如果“name”在excel文件的第一列中如果您的列不包含名称和年龄以外的任何数据,并且您对数据质量非常有信心(年龄应该是非数字数据,等等),那么您可以这样进行:
如果要保证顺序,可以使用
collections.OrderedDict
对象代替普通字典。如果您需要处理错误的数据(例如,有人在工作表中输入了字符串而不是整数年龄),则可能必须想出
names
和ages
生成器对象的自定义实现(上面的那些对象假设运行顺利)。相关问题 更多 >
编程相关推荐