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



我对python相对较新,我正在尝试计算填充数据的Excel表中的空单元格数。要测试程序,我一直在删除一些值,以使单元格为空:我的代码在

下方
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)

但是,代码将始终打印"数据表中的空单元的数量: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)

最新更新