verwandeln scipy spärlich csr-pandas?
Habe ich die
sklearn.preprocessing.OneHotEncoder
verwandeln einige Daten die Ausgabe ist scipy.sparse.csr.csr_matrix
wie kann ich merge es dann wieder in meiner ursprünglichen dataframe zusammen mit den anderen Spalten?
Habe ich versucht zu verwenden pd.concat
aber ich bekomme
TypeError: cannot concatenate a non-NDFrame object
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn A
csr_matrix
, die Sie verwenden können,.toarray()
(es gibt auch.todense()
erzeugt einenumpy
matrix
, die funktioniert auch für dieDataFrame
Konstruktor):Anschließend können Sie diese mit
pd.concat()
.In der version 0.20,
pandas
eingeführt sparse-Datenstrukturen, einschließlich derSparseDataFrame
.Alternativ können Sie die sparse-Matrizen zu
sklearn
zu vermeiden, läuft der Speicher bei der Konvertierung zurück zupandas
. Nur konvertieren Sie Ihre Daten, um sparse-format, indem einenumpy
array
zu denscipy.sparse.csr_matrix
Konstruktor und verwendenscipy.sparse.hstack
zu kombinieren (siehe docs)..toarray()
schafft eine Dichte metrix.Könnte man auch vermeiden, dass wieder eine sparse matrix in Erster Linie durch die Einstellung des Parameters
sparse
zuFalse
bei der Erstellung der Encoder.Die Dokumentation der OneHotEncoder Staaten:
Dann können Sie wieder aufrufen, das DataFrame Konstruktor für die Transformation der numpy-Arrays in ein DataFrame.