如何使用 Python 查找 Excel 表格单元格中特定单词的出现频率?
在本文中,我们将向您展示如何使用 Python 查找给定 Excel 文件单元格中特定单词的出现频率(单词出现的次数)。
假设我们有一个名为 TutorialsPoint.xlsx 的 Excel 文件,其中包含一些随机数据。我们将返回给定 Excel 文件单元格中给定单词的频率。
sampleTutorialsPoint.xlsx
| 球员姓名 | 年龄 | 类型 | 国家 | 队伍 | 得分 | 击球次数 |
|---|---|---|---|---|---|---|
| Virat Kohli | 击球手 | 印度 | 皇家挑战者班加罗尔 | 20 | ||
| 34 | 击球手 | 印度 | 太阳升起海德拉巴 | 333 | 140 | |
| Mahendra Singh Dhoni | 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 模块从电子表格中提取数据。Python xlrd 包可在 Pypi 上找到,允许用户读取扩展名为“.xls”或“.xlsx”的 Excel 文件)。
输入要查找频率的单词。
创建一个变量来存储给定单词重复的次数,即单词的频率。
创建一个变量来存储输入 Excel 文件的路径。
要创建/打开工作簿,请将输入文件作为参数传递给 xlrd 模块的 open_workbook() 函数(打开工作簿)。
使用 sheet_by_index() 函数(打开具有特定索引的工作表),通过将索引值作为参数传递给它来打开上述工作簿中所需的工作表。此处 0 表示第一个工作表。
firstWorksheet=new_workbook.sheet_by_index(0)
使用 for 循环遍历工作表的所有行。nrows 属性用于获取行的总数。
使用另一个嵌套的 for 循环,遍历工作表的所有列。ncols 属性用于获取列的总数。
使用 if 条件语句和 cell_value() 函数,检查每个单元格值是否等于给定的特定单词。
如果单元格值等于给定单词,则将频率计数加 1。
打印给定单词的频率计数,即单词重复的次数。
示例
以下程序检查 Excel 文件中的每个单元格值是否等于指定的单词,并打印输入单词的频率计数:
import xlrd givenWord =input("Enter some random word = ") # storing the frequency of the given word in a variable frequency_count =0 # input excel file path inputExcelFile ="sampleTutorialsPoint.xlsx" # Creating a workbook new_workbook=xlrd.open_workbook(inputExcelFile) # Opening the first worksheet in the workbook firstWorksheet=new_workbook.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_col in range (firstWorksheet.ncols): # Checking whether each cell value is equal to the given word if(firstWorksheet.cell_value(each_row, each_col)==givenWord): # Incrementing the frequency count by 1 frequency_count= frequency_count+1 # Printing count of the given word frequency print("The frequency count of the given word {",givenWord,"} = ", frequency_count)
输出
执行上述程序后,将生成以下输出:
Enter some random word = India
The frequency count of the given word { India } = 5
在我们的程序中,我们使用了包含虚拟数据的示例 Excel 文件。我们使用了一个变量来存储单词的频率,然后我们使用 for 循环逐个单元格遍历 Excel 文件,检查单元格的值是否等于单词,如果是,则我们增加频率,最后,我们打印单词频率的值。
结论
我们学习了如何利用 xlrd 模块从 Excel 文件创建工作簿,以及从选定的工作表创建工作表。我们还学习了如何逐个单元格遍历 Excel 文件,并将单元格值与一些随机字符串/值进行比较。我们学习了如何在 Excel 文件中计算单词的频率,这在许多情况下都很有用,例如确定用户在文档中出现的次数、按类别过滤 Excel 文件等。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP