我有一个字典,其中键是长度为2的元组,值是一个数字,如下所示:
{('Alf','2012.xlsx'):600}
我想创建一个稀疏矩阵,其中Alf是一行的名称,2012.xlsx是一列的名称,600是这两个元素相交的值。我希望我字典里的其他值都是这样。可能有类似于('Alf','2013.xlsx')和('Elf','2012.xlsx'的键)
字典可以是任意大小的,所以我在创建字典后想,我会在字典中循环,一个单元格一个单元格地创建一个数据帧,但我很难做到这一点
下面是我为创建这本词典(ing_dict)而编写的代码。我愿意以不同(更好)的方式来处理这个问题
for filename in os.listdir(inv_folder):
name, ext = os.path.splitext(filename)
if ext == '.xlsx':
if filename==inv_file:
continue
recipe_files.append(filename)
#loop through list of files, load each workbook, and send it to the inventory function
for file in recipe_files:
file_counter += 1
file_path = inv_folder+'\\'+file
wb = load_workbook(file_path,data_only=True)
sheet=wb.active
inventory(sheet,file,file_counter)
def inventory(sheet,file,file_counter):
print('\n',file)
for row in sheet.iter_rows(2,18,1,3):
if row[0].value:
ing_dict[(row[0].value,file)]=row[2].value
多谢各位
下面的代码应该执行您想要的操作。我添加了内联注释来解释如何转换数据
这将产生以下输出:
相关问题 更多 >
编程相关推荐