我创建了一个仅包含主题行列的数据框。
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'
由于在此行中将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'\|', ' ')
应该工作。