gpt4 book ai didi

python - 挖掘数据帧中唯一单词的数量

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:21 24 4
gpt4 key购买 nike

我希望在数据框中获取一组字符串,然后将这些字符串分解,以获得字符串中不同单词的计数。最终的想法是这样的:

单词1:5次

单词2:3次

单词3:10次

...

单词n:13次

最终目标是获取这组字符串,然后将分析扩展到 2 个单词、3 个单词等的分组。

我尝试了多个软件包,包括 Pandas、re、collections 等,但似乎没有一个能满足我的需要。

import pandas as pd

import re


fPath = 'path\there'
fName = '\BuzzWords.xlsx'

importExcel = pd.read_excel(fPath+fName, sheetname = 'DATA')
importExcel.sort_index(inplace = True)

bWList = ['words','things']

pattern = '(?i)('+'|'.join(bWList)+')'

minerFrame = importExcel[0:0]

dFCounter = max(importExcel.index)

for i in range(0,dFCounter+1):

temp = importExcel[i:i+1]

checker = temp[temp['description'].str.contains(pattern)]

checker2 = checker.isnull().sum().sum()

if checker2 > 0:
minerFrame = minerFrame.append(temp)

minerFrame = minerFrame.reset_index(drop = True)

该代码最终应该导致这种结果:

单词1:10

单词 2:20

单词 3:14

...

2 个单词组合:10

2 字组合:15

...

3 个单词组合:30

3 字组合:40

...

等等

感谢您的帮助!

最佳答案

正如 @Chris 提到的,collections 库中的 Counter 对象将返回一个包含唯一单词的字典及其计数。所以你可以这样做:

from collections import Counter

#...
bwDict = {}
for word in bwList:
bwDict[word] = 0

for i in range(0,dFCounter+1):

content = importExcel.loc[i, 'description']
for key, val in Counter(content).items():
if key in bwDict.keys():
bwDict[key] += val

这不会返回组合计数,但使用 re 库的现有代码应该返回该值。

关于python - 挖掘数据帧中唯一单词的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55928118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com