2016-04-13 7 views
10

Ich möchte diese Matrix in einen Pandas-Datenrahmen konvertieren. csc_matrixSparse-Matrix (csc_matrix) zu Pandas-Datenrahmen konvertieren

Die erste Zahl in der Klammer sollte wobei die Daten die Index die zweite Zahl ist Spalten und die Nummer in das Ende sein.

Ich möchte dies tun, um Feature-Auswahl in der Textanalyse zu tun, die erste Zahl stellt das Dokument dar, die zweite ist das Merkmal des Wortes und die letzte Zahl ist die TFIDF-Punktzahl.

Das Erhalten eines Datenrahmens hilft mir, das Textanalyseproblem in Datenanalyse umzuwandeln.

Antwort

7
from scipy.sparse import csc_matrix 

csc = csc_matrix(np.array(
    [[0, 0, 4, 0, 0, 0], 
    [1, 0, 0, 0, 2, 0], 
    [2, 0, 0, 1, 0, 0], 
    [0, 0, 0, 0, 0, 1], 
    [4, 0, 3, 2, 0, 0]])) 

# Return a Coordinate (coo) representation of the Compresses-Sparse-Column (csc) matrix. 
coo = csc.tocoo(copy=False) 

# Access `row`, `col` and `data` properties of coo matrix. 
>>> pd.DataFrame({'index': coo.row, 'col': coo.col, 'data': coo.data} 
       )[['index', 'col', 'data']].sort_values(['index', 'col'] 
       ).reset_index(drop=True) 
    index col data 
0  0 2  4 
1  1 0  1 
2  1 4  2 
3  2 0  2 
4  2 3  1 
5  3 5  1 
6  4 0  4 
7  4 2  3 
8  4 3  2 
+0

kühlen. Vielen Dank!!! –