Sto lavorando girando una lista di record con due colonne (A e B) in una rappresentazione a matrice. Ho usato la funzione pivot all'interno dei panda, ma il risultato è abbastanza grande. I panda supportano la rotazione in un formato spartano? So che posso girarlo e trasformarlo in una sorta di rappresentazione sparsa, ma non è elegante come vorrei. Il mio obiettivo finale è usarlo come input per un modello predittivo.Creazione efficiente di tabelle pivot sparse nei panda?
In alternativa, c'è qualche tipo di capacità di pivot sparsa al di fuori dei panda?
edit: qui è un esempio di un perno non sparse
import pandas as pd
frame=pd.DataFrame()
frame['person']=['me','you','him','you','him','me']
frame['thing']=['a','a','b','c','d','d']
frame['count']=[1,1,1,1,1,1]
frame
person thing count
0 me a 1
1 you a 1
2 him b 1
3 you c 1
4 him d 1
5 me d 1
frame.pivot('person','thing')
count
thing a b c d
person
him NaN 1 NaN 1
me 1 NaN NaN 1
you 1 NaN 1 NaN
Questo crea una matrice che potrebbero contenere tutte le possibili combinazioni di persone e cose, ma non è scarsa.
http://docs.scipy.org/doc/scipy/reference/sparse.html
matrici sparse occupano meno spazio perché possono implicare cose come NaN o 0. Se ho un grande insieme di dati, questa funzione di rotazione può generare una matrice che dovrebbe essere sparsa a causa del gran numero di di NaN o 0s. Speravo di poter risparmiare un sacco di spazio/memoria generando qualcosa che era raro da un blocco piuttosto che creare una matrice densa e quindi convertirlo in uno scarso.
Potresti fornire qualche esempio di input, output, codice? – Skorpeo
cosa significa sparse? – AZhao
@AZhao È un termine matematico https://en.m.wikipedia.org/wiki/Sparse_matrix –