Python 如何在Excel表格的单元格中查找特定单词的频率
在本文中,我们将向您展示如何使用Python在给定的Excel文件的单元格中找到特定单词的频率(单词出现的次数)。
假设我们已经拿到一个名为 TutorialsPoint.xlsx 的Excel文件,里面包含一些随机数据。我们将返回给定Excel文件中单元格中给定单词的频率。
sampleTutorialsPoint.xlsx
选手姓名 | 年龄 | 类型 | 国家 | 队伍 | 得分 | 篮子 |
---|---|---|---|---|---|---|
Virat Kohli | 击球手 | 印度 | Royal Challengers Bangalore | 20 | ||
34 | 击球手 | 印度 | Sun Risers Hyderabad | 333 | 140 | |
Mahendra Singh Dhoni | 39 | 击球手 | 印度 | Chennai Super Kings | 0 | |
Rashid Khan | 投球手 | 古吉拉特泰坦斯 | 500 | 130 | ||
哈迪克·潘迪亚 | 29 | 全能选手 | 古吉拉特泰坦斯 | 2400 | 85 | |
大卫·华纳 | 34 | 打击手 | 澳大利亚 | 5500 | 12 | |
基隆·波拉德 | 35 | 全能选手 | 西印度群岛 | 孟买印度人 | 0 | 67 |
罗希特·夏尔玛 | 33 | 打击手 | 印度 | 孟买印度人 | 5456 | 20 |
凯恩·威廉姆森 | 33 | 打击手 | 太阳升海得拉巴 | 3222 | 5 | |
卡吉索·拉巴达 | 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文件等。