我创建了一个数据框,其中只有一个带有主题行的列。
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)
我收到的错误消息是:“系列”对象没有属性“主题”
抛出错误是因为您已转换df
到这一行的一个系列:
df = activities.filter(['Subject'],axis=1)
所以当你说:
txt = df.Subject.str.lower().str.replace(r'\|', ' ')
df 是系列,没有系列属性。尝试替换为:
txt = df.str.lower().str.replace(r'\|', ' ')
或者,不要将您的 DataFrame 过滤为单个 Series 之前和之后
txt = df.Subject.str.lower().str.replace(r'\|', ' ')
应该管用。
[UPDATE]
我上面所说的是不正确的,正如所指出的那样,过滤器不会返回 Series,而是返回具有单列的 DataFrame。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)