Python:统计Excel数据表中空单元的数量

我相对比较新的Python,我试图计算一个Excel表格中充满数据的空单元格的数量。 为了testing程序,我一直在删除一些值,以便单元格为空:我的代码在下面

import xlrd import pandas as pd import openpyxl df = pd.read_excel('5train.xls') workbook = xlrd.open_workbook('5train.xls') worksheet = workbook.sheet_by_name('5train') #Task starts here empty = 0 row_data = worksheet.nrows - 1 row = 0 cell = 0 while row < row_data: if worksheet.cell(0, 0).value == xlrd.empty_cell.value: empty += 1 cell += 1 else: pass row += 1 print("Number of empty cells in data sheet:", empty) 

但是,无论有多less个单元格为空,代码将始终打印“数据表中空单元的数量:0”。 任何指针? 谢谢!

你总是检查你的循环中的同一个单元格:

 if worksheet.cell(0, 0).value == xlrd.empty_cell.value: 

只有第0行和第0列的单元格被检查,如果它是空的。

您可以使用.get_rows()在包含数据的最后一行遍历每行,然后通过检查每行中每个单元格的值来计算空单元格。

 workbook = xlrd.open_workbook('5train.xls') worksheet = workbook.sheet_by_name('5train') empty_cells = 0 for row in worksheet.get_rows(): empty_cells += sum(0 if c.value else 1 for c in row) 

如果你想使它成为一个单行,你可以使用:

 empty_cells = sum(0 if c.value else 1 for row in worksheet.get_rows() for c in row)