2016-04-13 26 views
10

Voglio convertire questa matrice in un dataframe panda. csc_matrixConverti matrice sparsa (csc_matrix) in dataframe panda

Il primo numero nella staffa dovrebbe essere il dell'indice, i secondo numero essendo colonne e il numero alla fine essendo i dati.

Voglio fare questo per selezionare la funzionalità nell'analisi del testo, il primo numero rappresenta il documento, il secondo è la funzione della parola e l'ultimo numero è il punteggio TFIDF.

Ottenere un dataframe mi aiuta a trasformare il problema dell'analisi del testo in analisi dei dati.

risposta

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

cool. Grazie!!! –