如何使用Python查找Excel表格中空白和非空白单元格的数量?
在本文中,我们将向您展示如何使用python查找excel工作表中空白和非空白(已填充)单元格的数量。
假设我们有一个名为**demoTutorialsPoint.xlsx**的excel文件,其中包含一些随机数据和一些**空白**单元格。我们将返回excel工作表中空白和非空白(已填充)单元格的数量。
sampleTutorialsPoint.xlsx
运动员姓名 | 年龄 | 类型 | 国家 | 队伍 | 得分 | wicket数 |
---|---|---|---|---|---|---|
Virat Kohli | 击球手 | 印度 | 皇家挑战者班加罗尔 | 20 | ||
34 | 击球手 | 印度 | 新升太阳海德拉巴 | 333 | 140 | |
马亨德拉·辛格·多尼 | 39 | 击球手 | 印度 | 钦奈超级国王 | 0 | |
Rashid Khan | 投球手 | 古吉拉特巨人 | 500 | 130 | ||
Hardik Pandya | 29 | 全能选手 | 古吉拉特巨人 | 2400 | 85 | |
David Warner | 34 | 击球手 | 澳大利亚 | 5500 | 12 | |
Kieron Pollard | 35 | 全能选手 | 西印度群岛 | 孟买印第安人 | 0 | 67 |
Rohit Sharma | 33 | 击球手 | 印度 | 孟买印第安人 | 5456 | 20 |
Kane Williamson | 33 | 击球手 | 新升太阳海德拉巴 | 3222 | 5 | |
Kagiso Rabada | 29 | 投球手 | 南非 | 勒克瑙首都 | 335 | 1 |
算法(步骤)
以下是执行所需任务的算法/步骤:
使用import关键字导入**xlrd模块**(要读取电子表格中的数据,请使用xlrd模块。它具有读取、写入和更改数据的能力。此外,用户可能需要遍历多个工作表来根据某些条件获取数据,或者更改特定的行和列等等。使用xlrd模块从电子表格中提取数据)。
pip install xlrd
创建一个变量来存储excel表中存在的空单元格的数量。
创建另一个变量来存储excel表中存在的非空单元格的数量。
将两个计数变量初始化为0。
创建一个变量来存储输入excel文件的路径。
要创建工作簿对象,请将输入excel文件传递给xlrd模块的**open_workbook()**函数(打开工作簿)。
使用**sheet_by_index()**方法(打开具有特定索引的工作表),打开给定工作簿中的第一个工作表(这里0代表第一个工作表)。
使用for循环遍历工作表的所有行。**nrows**属性用于获取总行数。
使用嵌套的for循环,使用另一个嵌套的for循环遍历工作表的所有列。**ncols**属性用于获取总列数。
使用**cell_value()**函数(给出指定行和列中单元格的值)和if条件语句,确定单元格是否为空。
如果单元格为空,则将空单元格计数加1。
否则,将非空单元格计数加1。
打印在给定的输入excel文件中找到的空单元格的数量。
打印在给定的输入excel文件中找到的非空单元格的数量。
示例
下面的程序打印在给定的输入excel文件中找到的空白和非空白单元格的数量:
import xlrd # storing the count of Empty cells emptyCells=0 # storing the count of Non-empty cells nonEmptycells=0 # input excel file path inputExcelFile ="sampleTutorialsPoint.xlsx" # creating a workbook newWorkbook =xlrd.open_workbook(inputExcelFile) # creating a first worksheet firstWorksheet=newWorkbook.sheet_by_index(0) # Traversing in all the rows of the worksheet # (nrows is used to get the number of rows) for each_row in range (firstWorksheet.nrows): # Traversing in all the columns of the worksheet # (ncols is used to get the number of columns) for each_column in range (firstWorksheet.ncols) : # Checking whether the cell is a blank cell if (firstWorksheet.cell_value(each_row, each_column)==""): # Incrementing empty cells count by 1, if it is a blank cell emptyCells+=1 else : # Else Incrementing Non-empty cells count by 1 nonEmptycells+=1 # Printing the count of empty cells print("Empty cells count = ", emptyCells) # Printing the count of Non-empty cells print("Non-empty cells count = ", nonEmptycells)
输出
执行上述程序将生成以下输出:
Empty cells count = 10 Non-empty cells count = 67
我们在程序中使用了包含一些虚拟数据的示例excel文件。excel文件包含一些空白单元格。我们使用两个变量来计算空单元格和非空单元格的数量,并使用for循环逐个单元格遍历excel文件,检查它是否为空单元格,并打印空单元格和非空单元格的数量。
结论
我们学习了如何使用xlrd模块将excel文件作为工作簿获取,并将指定的工作表作为工作表获取。我们还学习了如何逐个单元格遍历excel文件以及如何使用cell value()函数获取单元格的值。