Pandas:用稀疏矩阵连接数据帧

2024-04-20 11:32:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一些基本的机器学习,并有一个TFIDF生成的稀疏矩阵,如下所示:

<983x33599 sparse matrix of type '<type 'numpy.float64'>'
    with 232944 stored elements in Compressed Sparse Row format>

然后我有一个带有title列的数据帧。我想把它们组合成一个数据帧,但是当我试图使用concat时,我发现我不能将一个数据帧与一个非数据帧对象组合起来。在

我该怎么办?在

谢谢!在


Tags: of数据innumpy机器typewith矩阵
2条回答

考虑以下演示:

来源数据:

In [2]: df
Out[2]:
                     text
0       is it  good movie
1  wooow is it very goode
2               bad movie

解决方案:让我们用TFIDF稀疏矩阵创建一个sparsedaframe:

^{pr2}$

结果:

In [13]: sdf
Out[13]:
   bad  good     goode     wooow                    text
0  0.0   1.0  0.000000  0.000000       is it  good movie
1  0.0   0.0  0.707107  0.707107  wooow is it very goode
2  1.0   0.0  0.000000  0.000000               bad movie

In [14]: sdf.memory_usage()
Out[14]:
Index    80
bad       8
good      8
goode     8
wooow     8
text     24
dtype: int64

请注意.memory_usage()-我们没有失去“稀疏性”。如果我们使用pd.concatjoinmerge等,我们将失去“稀疏性”,因为所有这些方法都会生成合并数据帧的新的常规(非稀疏)副本

也许你可以尝试在连接之前对稀疏矩阵使用to_dense(),然后用to_sparse()转换回稀疏矩阵。希望有帮助。在

相关问题 更多 >