我有一张包含2张的excel文件。 在第一张纸上,我有100列x 23行。第一列包含名称,其他99列包含数字。 在第二张表中,我的第一列有名字。 如果名称匹配,我想在第二张表格中添加第一张表格中99列的平均值。 这就是我到现在为止所尝试的:
wb = openpyxl.load_workbook(".xlsx")
ws1 = wb.get_sheet_by_name('sheet1')
ws2 = wb.get_sheet_by_name('sheet2')
for counter1 in range(39,62): #counter to parse second sheet
for counter2 in range(36, 62):#counter to parse first sheet
if ws1.cell(row=counter1, column=1).value == ws2.cell(row=counter2, column=1).value: # check if column1 from first sheet matches column 1 from second sheet
ws1.cell(row=counter1,column=19).value = ...
我不知道如何计算99列的平均值来添加它。 我尝试过mean(ws2.cell(row = counter2,column = 2).value), 但我得到了这个错误: TypeError:无法转换类型" unicode"分子/去噪剂
欢迎任何帮助
答案 0 :(得分:0)
wb = openpyxl.load_workbook(".xlsx")
ws1 = wb.get_sheet_by_name('sheet1')
ws2 = wb.get_sheet_by_name('sheet2')
for counter1 in range(39,62): #counter to parse second sheet
for counter2 in range(36, 62):#counter to parse first sheet
if ws1.cell(row=counter1, column=1).value == ws2.cell(row=counter2, column=1).value: # check if column1 from first sheet matches column 1 from second sheet
summ = 0.0
for col in range(2,101):
summ += float(ws1.cell(row = counter2, column = col).value)
average = summ/99
ws1.cell(row=counter1,column=19).value = average
所以我会通过总结列值并将总和除以列数来自己计算均值。
你确定,counter1指的是SECOND表和第二张表的counter2吗?命名表明可能存在逻辑错误。另外,为什么第二个范围从36到62而不像第一个范围那样从39到62?