如何使用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文件中的每个单元格值是否等于指定的单词,并打印输入单词的频率计数 –
导入xlrd
givenWord=input("输入一个随机单词 = ")
# 存储给定单词的频率
frequency_count=0
# 输入电子表格文件的路径
inputExcelFile="sampleTutorialsPoint.xlsx"
# 创建工作簿
new_workbook=xlrd.open_workbook(inputExcelFile)
# 打开工作簿中的第一个工作表
firstWorksheet=new_workbook.sheet_by_index(0)
# 遍历工作表的所有行
# (nrows 用于获得行数)
for each_rowinrange(firstWorksheet.nrows):
# 遍历工作表的所有列
# (ncols 用于获得列数)
for each_colinrange(firstWorksheet.ncols):
# 检查每个单元格的值是否等于给定的单词
if(firstWorksheet.cell_value(each_row, each_col)==givenWord):
# 将频率计数增加 1
frequency_count= frequency_count+1
# 打印给定单词频率的计数
print("给定单词 { ",givenWord,"} 的频率计数为 ", frequency_count)
输出
执行上述程序后,将生成以下输出 −
输入一个随机单词 = India
给定单词 { India } 的频率计数为 5
在我们的程序中,我们使用了一个带有虚拟数据的样本 Excel 文件。我们使用一个变量存储单词的频率,然后我们使用 for 循环逐单元格遍历 Excel 文件,检查单元格的值是否等于给定单词,如果是,则增加频率,最后,我们打印单词频率的值。
结论
我们学习如何利用 xlrd 模块从 Excel 文件创建工作簿和所选工作表中的工作表。 我们还学习了如何逐单元格遍历 Excel 文件并将单元格值与某些随机字符串/值进行比较。 我们学习了如何计算 Excel 文件中单词的频率,这在许多情况下非常有用,例如确定用户在文档中出现的次数,按类别过滤 Excel 文件等。