使用 openpyxl 模块替换 excel 工作表中的缺失值

Replace missing values in excel worksheet using openpyxl module

我正在尝试用位于上方的单元格和位于下方的单元格之间的平均值替换 Excel 工作表中包含连字符“-”的单元格。我将尝试通过遍历第 3 列中的每一行来做到这一点

 import math
 from openpyxl import load_workbook
 import openpyxl

 d_filename="Snow.xlsx"
 wb = load_workbook(d_filename)

 sheet_ranges=wb["PIT 1"]'


def interpolatrion_of_empty_cell():

for i in range(7,31):
    if i =="-":
        sheet_ranges.cell(row = i, column = 3).value = mean(i-1,i+1)
    else:
        sheet_ranges.cell(row = i, column = 3).value

wb.save(filename = d_filename)

这只是简单易行还是无法使用 openpyxl?

干杯// 斯米福

值未被替换的原因是您使用 i 来检查它是否等于 -。 i 是一个索引,而不是单元格的值。此外,为了计算平均值,您使用的是索引,而不是顶部和底部单元格的值。

所以你可以通过以下方式解决这个问题:

def interpolatrion_of_empty_cell():
     for i in range(7,31):
          cell_value = sheet_ranges.cell(row=i, column=3).value
          if cell_value == "-":
               top_value = sheet_ranges.cell(row=i+1, column=3).value
               bottom_value = sheet_ranges.cell(row=i - 1, column=3).value
               sheet_ranges.cell(row=i, column=3).value = (float(top_value) + float(bottom_value))/2

并不是说这可能需要调整,因为它不考虑首行和末行是 -、不是数字或只是空单元格的情况。