我有一个Excel电子表格,其数据如下(从A1到C3): original spreadsheet 我想计算一列中非零值的机会,然后将结果写入此列中的最后一个单元格。对于第三列,结果应为2/3 = 0.67 下面是我为执行相同操作而编写的Python脚本,但显然得到了错误的结果。
代码:
import openpyxl
wb = openpyxl.load_workbook('testXls.xlsx')
sheet = wb.active
for colNum in range(1, sheet.max_column + 1):
coverCount = 0
for rowNum in range(1, sheet.max_row + 1):
if sheet.cell(row=rowNum, column=colNum).value != 0:
coverCount += 1
sheet.cell(row=4, column=colNum).value = round(coverCount / 3, 2)
wb.save('testXls2.xlsx')
我在代码中找不到任何错误。有人可以启发我吗?我真的很感激。
答案 0 :(得分:0)
问题是您在每次迭代的第四行中记下了该值,这会导致不必要的迭代。