2016-04-13 11 views
10

Chcę przekonwertować tę macierz na pandową ramkę danych. csc_matrixKonwertuj rzadką macierz (csc_matrix) na pandasową ramkę danych

pierwszy numer w uchwycie powinien być indeks , że sekund liczba wynosi kolumny a liczba w końcu będąc danych.

Chcę to zrobić, aby dokonać wyboru cech w analizie tekstu, pierwsza liczba reprezentuje dokument, druga jest cechą słowa, a ostatnia liczba jest wynikiem TFIDF.

Uzyskanie ramki danych pomaga mi przekształcić problem analizy tekstu w analizę danych.

Odpowiedz

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

fajne. dzięki!!! –

Powiązane problemy