2016-11-09 10 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からインデックスされます)。
  • 単語を表す列(インデックス1)。
  • 頻度という用語。

私はこのファイルを読み、scipy.io.mmreadと解析データ構造を扱うための新しいAPIを使用しています。特に

、私は、次のコードを使用する:

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

ただし、このコードから、Iは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

関連する問題