2017-10-12 84 views
0

我有一个拥有帐户信息和取消原因的熊猫数据框。我清理了数据/词组化/删除了我自己的停用词来提出n克和频率。如何将所有ngram添加回原始数据集,以便频率与帐户级别信息一致?理想情况下,我希望采取这种方式并输出一份我可以提供给企业的文件。如何将列的ngram频率返回到原始数据帧?

有没有一种方法可以使用稀疏矩阵来实现这一点?不确定这是否可行,甚至可以扩展到更大的数据集。

下面是我想附加到原始数据帧的一些频率的图片。

frequencies code

回答

0

我最终搞清楚如何做到这一点:

创建稀疏矩阵和其适配到数据帧我能够通过合并与原始数据帧中的数据后,索引作为加入列。以下是我的代码示例:

tf_vect_final = CountVectorizer(max_df=0.90,min_df=5,stop_words=stop, 
            ngram_range=(5,5),analyzer='word') 

tf_vect_final.fit(dfn['Not Written Comments_clean_stop'].tolist()) 

print("There are {} grams found".format(len(tf_vect_final.get_feature_names()))) 

tff = tf_vect_final.transform(dfn['Not Written Comments_clean_stop'].tolist()) 

tff = pd.DataFrame(tff.toarray(),columns=tf_vect_final.get_feature_names()) 


dfn.index.names=['PK'] 
tff.index.names=['PK'] 
dfn = dfn.reset_index() 
tff = tff.reset_index() 
dfn_final = dfn.merge(tff, on= 'PK')