我创建了一个数据帧,其中只有一列带有主题行。你知道吗
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”属性
数据:
更新代码:
txt = df.Subject.str.lower().str.replace(r'\|', ' ')
创建pandas.core.series.Series
并将被替换words = nltk.tokenize.word_tokenize(txt)
,抛出一个TypeError
,因为txt
是一个Series
。list
。在本例中,查看df
将显示一个tok
列,其中每一行都是一个列表words
的列表中。你知道吗输出
rslt
:引发错误的原因是您已将
df
转换为此行中的序列:所以当你说:
df是序列,没有序列属性。尝试替换为:
或者,不要在之前或之后将数据帧过滤为单个序列
应该有用。你知道吗
[更新]
我上面所说的是不正确的,正如所指出的,filter不返回一个序列,而是返回一个只有一列的数据帧。你知道吗
相关问题 更多 >
编程相关推荐