我正在根据收到的电子邮件在Python中进行文本分析。我的数据在Pandas数据框中,电子邮件的文本在df['document']
中,主题在df['topic']
列中。
我想使用定义每个主题的最高关键字创建一个数据框(可能使用tf_idf)。
我创建了一个矢量化程序,并试图创建一个新的数据框,其主题为索引或行,以及列中的单词列表。
from sklearn.feature_extraction.text import TfidfVectorizer
v = TfidfVectorizer()
x = v.fit_transform(df['document'])
# Topic-Keyword Matrix
df_topic_keywords = pd.DataFrame()
# Assign Column and Index
df_topic_keywords.columns = v.get_feature_names() #error occurs here
df_topic_keywords.index = df['topic']
# View
df_topic_keywords.head()
然后我得到了错误。
“ ValueError:长度不匹配:预期的轴有0个元素,新值 有12730166个元素”
答案 0 :(得分:0)
所以问题是您用零列创建了一个新的df,并尝试在其中分配新列。解决方案是:
df_topic_keywords = pd.DataFrame(pd.np.empty((0, len(v.get_feature_names()))))
df_topic_keywords.columns = v.get_feature_names()