2016-11-09 102 views
1

我有一个市场矩阵文件,我必须使用它来执行文本分析。将矩阵市场矩阵转换为熊猫数据框架python

市场文件具有以下结构:

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

在第二线的值表示的行数,列数,并在基质中的非零值的总数。之后的所有行包含3个值:

  • 该行代表我的文本文档;
  • 表示字的列(来自1的索引)
  • 术语频率。

正如我在很多文章中看到的那样,我使用scipy.io.mmread和新的API来处理解析数据结构。

我特别用下面的代码:

Matrix = (mmread('file_name.mtx')) 
    B = Matrix.todense() 
    df = pd.DataFrame(B) 
    print(df.head()) 

然而,从这个代码我从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

任何想法如何纠正我的代码?

谢谢!

回答

1

您可以指定数据帧

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 
+0

感谢索引和列!有用。我从来没有处理过mtx文件! – Sil

+1

@Sil既没有我 – piRSquared