将矩阵市场矩阵转化为pandas数据帧python

2024-06-25 22:43:13 发布

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

我有一个市场矩阵文件,我必须用它来进行文本分析。在

市场文件的结构如下:

%%MatrixMarket matrix coordinate integer general
2000 5000 23000
1 4300 1
1 2200 1
1 3000 1
1 600  1

第二行中的值表示矩阵中的行数、列数和非零值的总数。后面的所有行都包含3个值:

  • 行(从1开始索引),它表示我的文本文档
  • 列(从1开始的索引),表示一个单词
  • 术语频率。在

正如我在许多帖子中读到的,我使用scipy.io.mmread解析和处理新的API结构。在

我特别使用了以下代码:

^{pr2}$

但是,从这段代码中,我得到了一个索引为0的数据帧:

        0     1     2     3     4     5     6     7     8     9     ...   4872  \
0     1     0     1     0     0     0     0     0     1     0  ...      0   
1     0     0     0     0     0     0     0     0     0     0  ...      0   
2     0     0     0     0     0     0     0     0     0     0  ...      0   
3     1     0     1     0     0     0     0     0     1     0  ...      0   
4     0     0     1     0     0     0     0     0     0     0  ...      0  

理想的结果是保留原始市场矩阵的格式,行和列从1开始索引。在

有什么办法纠正我的代码吗?在

谢谢!在


Tags: 文件代码文本coordinate市场矩阵integer文本文档
1条回答
网友
1楼 · 发布于 2024-06-25 22:43:13

可以指定数据帧的索引和列

Matrix = (mmread('file_name.mtx'))
B = Matrix.todense()
df = pd.DataFrame(B, range(1, B.shape[0] + 1), range(1, B.shape[1] + 1))
print(df.iloc[:5, :5])

   1  2  3  4  5
1  0  0  0  0  0
2  0  0  0  0  0
3  0  0  0  0  0
4  0  0  0  0  0
5  0  0  0  0  0

相关问题 更多 >