2016-11-09 49 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