如何将列的 ngram 频率绑定回原始数据框?

How to to tie ngram frequency of a column back to the original data frame?

我有一个 pandas 数据框,其中包含帐户信息和取消原因。我已经清理了 data/lemmatized/removed 我自己的停用词以得出 n 克和频率。如何将所有 ngram 添加回原始数据集,以便频率与帐户级别信息一致?理想情况下,我想利用它并输出一个我可以提供给企业的文件。

有什么方法可以使用稀疏矩阵来实现吗?不确定这是否可能或什至可扩展到更大的数据集。

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

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

创建稀疏矩阵并将其拟合到数据框后,我能够通过使用索引作为连接列将数据与原始数据框合并。以下是我的代码示例:

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')