文本分析:使用python查找列中最常见的词

问题描述 投票:0回答:1

我创建了一个仅包含主题行列的数据框。

df = activities.filter(['Subject'],axis=1)
df.shape

此返回此数据框:

    Subject
0   Call Out: Quadria Capital - May Lo, VP
1   Call Out: Revelstoke - Anthony Hayes (Sr Assoc...
2   Columbia Partners: WW Worked (Not Sure Will Ev...
3   Meeting, Sophie, CFO, CDC Investment
4   Prospecting

然后我尝试使用此代码分析文本:

import nltk
top_N = 50
txt = df.Subject.str.lower().str.replace(r'\|', ' ')
words = nltk.tokenize.word_tokenize(txt)
word_dist = nltk.FreqDist(words)

stopwords = nltk.corpus.stopwords.words('english')
words_except_stop_dist = nltk.FreqDist(w for w in words if w not in stopwords) 

rslt = pd.DataFrame(word_dist.most_common(top_N), columns=['Word', 'Frequency'])
print(rslt)

我得到的错误消息是:'Series'对象没有属性'Subject'

python pandas
1个回答
0
投票

由于在此行中将df转换为系列,所以引发了错误:

df = activities.filter(['Subject'],axis=1)

所以当你说:

txt = df.Subject.str.lower().str.replace(r'\|', ' ')

df是Series,没有属性Series。尝试替换为:

txt = df.str.lower().str.replace(r'\|', ' ')

或者也不要在之前将DataFrame过滤到单个Series上,然后>

txt = df.Subject.str.lower().str.replace(r'\|', ' ')

应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.